Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
合并两个有序链表
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode p1 = l1; ListNode p2 = l2; ListNode fakeHead = new ListNode(0); ListNode p = fakeHead; while(p1 != null && p2 != null){ if(p1.val <= p2.val){ p.next = p1; p1 = p1.next; }else{ p.next = p2; p2 = p2.next; } p = p.next; } if(p1 != null) p.next = p1; if(p2 != null) p.next = p2; return fakeHead.next; } }
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # @param two ListNodes # @return a ListNode def mergeTwoLists(self, l1, l2): if l1 == None: return l2 if l2 == None: return l1 dummy = ListNode(0) tmp = dummy while l1 and l2: 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 l2 == None: tmp.next = l1 else: tmp.next = l2 return dummy.next