5.合併兩個有序連結串列
阿新 • • 發佈:2018-12-19
題:將兩個有序連結串列合併為一個新的有序連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。
示例:
輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4
程式碼:
class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public static ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null && l2 == null) { return null; } else if (l1 == null && l2 != null) { return l2; } else if (l1 != null && l2 == null) { return l1; } // 都不為空 ListNode tmpL1 = l1; ListNode tmpL2 = l2; ListNode result = new ListNode(0); ListNode p = result; while (tmpL1 != null && tmpL2 != null) { if (tmpL1.val <= tmpL2.val) { p.next = tmpL1; p = p.next; tmpL1 = tmpL1.next; } else { p.next = tmpL2; p = p.next; tmpL2 = tmpL2.next; } } if (tmpL1 == null) { p.next = tmpL2; } else if (tmpL2 == null) { p.next = tmpL1; } return result = result.next; }