思路:
这道题不需要集合放入两个链表再进行重排序,只需要两个指针,按大小进行遍历,代码如下:
class Solution {/*** 1->3->5->7* 2->4->6->8->10->12* * 1->3->5->7* h c1* p* 2->4->6->8->10->12* c2* * 每次都是比较c1和c2 那个小 谁小p的next指针指向谁 * 然后c1 或者c2 向前走一位,p来到p.next 位置* * 最后判断p.next=c1==null?c2:c1*/public ListNode mergeTwoLists(ListNode list1, ListNode list2) {if (list1==null||list2==null){return list1==null?list2:list1;}ListNode head=list1.val<=list2.val?list1:list2;ListNode cur1=head.next;ListNode cur2=head==list1?list2:list1;ListNode pre=head;while (cur1!=null&&cur2!=null){if (cur1.val<=cur2.val){pre.next=cur1;cur1=cur1.next;}else {pre.next=cur2;cur2=cur2.next;}pre=pre.next;}pre.next=cur1==null?cur2:cur1;return head;}
}