領釦——21.合併兩個有序連結串列
阿新 • • 發佈:2018-11-09
領釦——21.合併兩個有序連結串列
將兩個有序連結串列合併為一個新的有序連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。
示例:
輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //建立一個新的頭結點,代表一個新的連結串列的頭結點 ListNode tmp=new ListNode(0); //建立一個引用,保持當前指向位置 ListNode save=tmp; //比較大小,並串聯起來,當兩個連結串列都不為空時 while(l1!=null && l2!=null){ if(l1.val<l2.val){ tmp.next=l1; l1=l1.next; tmp=tmp.next; } else { tmp.next=l2; l2=l2.next; tmp=tmp.next; } } if(l1==null) tmp.next=l2; if(l2==null) tmp.next=l1; return save.next; } }