zoukankan      html  css  js  c++  java
  • 剑指offer-6从尾到头打印链表

    题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
    1.利用列表
    class Solution:
        # 返回从尾部到头部的列表值序列,例如[1,2,3]
        def printListFromTailToHead(self, listNode):
            # write code here
            array1=[]
            while listNode!=None:
                array1.append(listNode.val)
                listNode=listNode.next
             
            return array1[::-1]
    

    2.

    class Solution:
        # 返回从尾部到头部的列表值序列,例如[1,2,3]
        def printListFromTailToHead(self, listNode):
            # write code here
            array1=[]
            while listNode!=None:
                array1.insert(0,listNode.val)
                listNode=listNode.next
             
            return array1
    

    3.递归法

    不推荐这种嵌套函数的方法,虽然结果是对的

    class Solution:
        # 返回从尾部到头部的列表值序列,例如[1,2,3]
        def printListFromTailToHead(self, listNode):
            result = []    #这个result放在printListFromTailToHead上面就不能被他所返回
            def solutions(Node):
                if Node:
                    solutions(Node.next)
                    result.append(Node.val)
            solutions(listNode)
            return result  

     推荐这种方法,可以写一个初始化函数,定义一个列表

    class Solution:
        # 返回从尾部到头部的列表值序列,例如[1,2,3]
        def __init__(self):
            self.arrayList=[]
        def printListFromTailToHead(self, listNode):
            # write code here
            if listNode:            
                self.printListFromTailToHead(listNode.next)
                self.arrayList.append(listNode.val)
            return self.arrayList
    

      

    class Solution:
        # 返回从尾部到头部的列表值序列,例如[1,2,3]
        def printListFromTailToHead(self, listNode):
            # write code here
            array1=[]
            while listNode!=None:
                array1.append(listNode.val)
                listNode=listNode.next
             
            return array1[::-1]
  • 相关阅读:
    技术沙龙.:主题为《代码解析Castle(IOC)应用实例 -开源CMS 系统Cuyahoga》
    Active Record和Domain Object + Dao
    SNMP++.NET 项目
    微软发布Windows Vista Tips and Tricks网站
    2007 Office System Video
    使用搜索引擎搜索结果
    我购买了一台acer笔记本
    有价值的杂志《MSDN杂志》中文版
    Spring2.0中文参考手册(中文版) [转自CSDN论坛]
    开源项目Generics.Net介绍
  • 原文地址:https://www.cnblogs.com/wanrongshu/p/12738439.html
Copyright © 2011-2022 走看看