题目描述
思路:
建立一个新链表,将新链表的节点指针指向l1,l2中val较小的节点,直到遍历完l1,l2其中一个链表,然后将新链表的指针直接指向未遍历完的另一个链表,由于最开始初始化时链表list的第一个元素为0,所以最后返回list.next。
代码如下:
/**
* Definition for singly-linked list.
* public class ListNode {
* public int val;
* public ListNode next;
* public ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode MergeTwoLists(ListNode l1, ListNode l2) {
int i;
ListNode list=new ListNode(0);
ListNode node=list;
while(l1!=null&&l2!=null)
{
if(l1.val<=l2.val)
{
node.next=l1;
node=node.next;
l1=l1.next;
}
else if(l1.val>l2.val)
{
node.next=l2;
node=node.next;
l2=l2.next;
}
}
if(l1==null)
{
node.next=l2;
}
else if(l2==null)
{
node.next=l1;
}
return list.next;
}
}