zoukankan      html  css  js  c++  java
  • 面试题17-合并两个有序的链表


    1. # -*- coding: utf-8 -*-
    2. """
    3. Created on Thu Mar  2 11:35:11 2017
    4. @author: zzpp220
    5. """
    6. class LinkList:
    7.    def __init__(self,val=None,link=None):
    8.        self.val=val
    9.        self.link=link
    10. class MergeLink:
    11.    def mergeLink(self,lst1,lst2):
    12.        if lst1==None:##先给出递归到最细情况或者特殊情况式的返回值
    13.            return lst2
    14.        elif lst2==None:
    15.            return lst1
    16.        else:
    17.            
    18.            Head_Total=None#在给出从最大的对象开始如何产生下一级的要递归的对象
    19.            if lst1.val <=lst2.val:
    20.                Head_Total=lst1
    21.                Head_Total.link=self.mergeLink(lst1.link,lst2)#z在本级对下一级对象应用递归,直到最细的一级满足最开始定义的情况,跳回上一级,并且返回递归的结果共上一层使用
    22.            else:
    23.                Head_Total=lst2
    24.                Head_Total.link=self.mergeLink(lst1,lst2.link)#对下一级对象应用递归,并且使用下一级递归返回的结果
    25.        return Head_Total#跳回本级之后,就要定义一般操作,用下一级返回值要做怎么的使用,作为一般情况下本次递归的返回值。
    26. if __name__=='__main__':
    27.    solution=MergeLink()
    28.    l0=LinkList(7)  
    29.    l1=LinkList(6,l0)
    30.    l2=LinkList(5,l1)
    31.    l3=LinkList(3,l2)
    32.    lst1=LinkList(1,l3)#1-->3-->5-->6-->7
    33.    
    34.    r0=LinkList(8)  
    35.    r1=LinkList(6,r0)
    36.    r2=LinkList(6,r1)
    37.    r3=LinkList(4,r2)
    38.    rst1=LinkList(2,r3)#2-->4-->6-->6-->7
    39.    solution.mergeLink(lst1,rst1)
    40.    print lst1.link.link.link.val


    附件列表

    • 相关阅读:
      Lesson_strange_words6
      Lesson_strange_words3
      Lesson_strange_words4
      Lesson_strange_words1
      Lesson_strange_words2
      关于我们子页面
      关于我们页面
      走进龙门石窟子页面
      3.用户登陆注册
      2.项目初始化
    • 原文地址:https://www.cnblogs.com/zzxx-myblog/p/6498552.html
    Copyright © 2011-2022 走看看