题目
思路:
设置一个第三结点preHead,借助三个工具指针pre, l1, l2,分别代表三个指针,初始分别指向三个结点
比较 l1、l2值的大小,不断建立连接。直至连接到其中一条链表的末尾,退出
判断第2步后还有哪个结点没有连接,连接最后一个结点
返回preHead.next,即新链表的头结点(不包括preHead).
class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListNode preHead=new ListNode(-1); ListNode pre=preHead; ListNode l1=list1; ListNode l2=list2; while(l1!=null && l2!=null){ if(l1.val<=l2.val){ pre.next=l1; l1=l1.next; }else{ pre.next=l2; l2=l2.next; } pre=pre.next; } if(l1==null){ pre.next=l2; }else{ pre.next=l1; } return preHead.next; } }