题目
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的
代码
public class Solution {
public ListNode MergeTwoLists(ListNode l1, ListNode l2)
{
ListNode result=new ListNode(0);
ListNode l3 = result;
while (l1 != null&&l2 != null)
{
if (l1.val <= l2.val)
{
l3.next = l1;
l1 = l1.next;//l1走下一个节点
}
else
{
l3.next = l2;
l2 = l2.next;
}
l3 = l3.next;//l3存完这一轮最小的数后,下一个节点又去存下一轮的
}
if(l1==null)
l3.next=l2;
if (l2 == null)
l3.next = l1;
return result.next; //因为result的第一个节点是自己定义的,返回的应该是下一个节点
}
}
运行结果
解题思路
将l1和l2的值进行比较,如果l1的值小,那么就将l1的值给l3,然后在将下一个l1(即l1=l1.next)和上一轮较小的l2比较,如此迭代。