21. Merge Two Sorted Lists

来源:互联网 发布:双十一数据增长文献 编辑:程序博客网 时间:2024/06/05 15:12

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.

java

/** * 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) {        if (l1 == null && l2 == null) {            return null;        }        if (l1 != null && l2 == null) {            return l1;        }        if (l1 == null && l2 != null) {            return l2;        }        ListNode dummy = new ListNode(-1);        ListNode head = dummy;        while (l1 != null && l2 != null) {            if (l1.val < l2.val) {                head.next = l1;                l1 = l1.next;            } else {                head.next = l2;                l2 = l2.next;            }            head = head.next;        }        while (l1 != null) {            head.next = l1;            l1 = l1.next;            head = head.next;        }        while (l2 != null) {            head.next = l2;            l2 = l2.next;            head = head.next;        }        return dummy.next;    }}

python

# Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution(object):    def mergeTwoLists(self, l1, l2):        """        :type l1: ListNode        :type l2: ListNode        :rtype: ListNode        """        dummy = ListNode(-1)        head = dummy        while l1 is not None and l2 is not None:            if l1.val < l2.val:                head.next = l1                l1 = l1.next            else:                head.next = l2                l2 = l2.next            head = head.next        if l1 is not None:            head.next = l1        else:            head.next = l2        return dummy.next                        


原创粉丝点击