zoukankan      html  css  js  c++  java
  • 合并两个有序链表

    将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

    示例:

    输入:1->2->4, 1->3->4
    输出:1->1->2->3->4->4


    # Definition for singly-linked list.
    # class ListNode(object):
    # def __init__(self, x):
    # self.val = x
    # self.next = None

    class Solution(object):
    def mergeTwoLists(self, l1, l2):
    """
    :type l1: ListNode
    :type l2: ListNode
    :rtype: ListNode
    """

    解答:

    class ListNode(object):
    def __init__(self, x):
    self.val = x
    self.next = None

    class Solution(object):
    def mergeTwoLists(self, l1, l2):
    while True:
    new_node = ListNode(0) #建立新结点
    pre_node = new_node
    while l1 and l2:
    if l1.val < l2.val:
    pre_node.next = l1
    l1 = l1.next
    else:
    pre_node.next = l2
    l2 = l2.next
    pre_node = pre_node.next
    if l1 is not None:
    pre_node.next = l1
    if l2 is not None:
    pre_node.next = l2
    #print(pre_node.val)
    return new_node.next

    head1 = ListNode(2)
    n1 = ListNode(8)
    n2 = ListNode(9)
    n3 = ListNode(10)
    head1.next = n1
    n1.next = n2
    n2.next = n3

    #while head1:
    # print(head1.val)
    # head1 = head1.next

    head2 = ListNode(4)
    m1 = ListNode(5)
    m2 = ListNode(6)
    m3 = ListNode(10)
    head2.next = m1
    m1.next = m2
    m2.next = m3
    #while head2:
    # print(head2.val)
    #head2 = head2.next

    s = Solution()
    r = s.mergeTwoLists(head1,head2)
    while r:
    print(r.val)
    r = r.next
  • 相关阅读:
    Git-远程版本库
    Git-Git分支
    Git-Git里程碑
    Git-冲突解决
    Git-Git库管理
    Git-Git克隆
    Git-改变历史
    Git-历史穿梭
    RHCE考试
    RHCSA考试
  • 原文地址:https://www.cnblogs.com/zbligang/p/10413696.html
Copyright © 2011-2022 走看看