zoukankan      html  css  js  c++  java
  • 《剑指offer》面试题9: 从尾到头打印链表

    题目描述

    输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
     

    解题思路:

    这个题目没有说清楚到底返回的是什么,在代码当中传入进来的值是一个Node对象,也就是链表当中的一个节点,它具有两个值,一个值是它本身所具有的值,另外一个值则是它所指向的下一个节点的地址,我们只要通过利用这个next指向下一个Node的属性,就可以很好的得到每一个节点所具有的值。然后题目当中隐含的意思是让我们返回一个从尾到头的链表的值所组成的链表,而不是把一系列链表对象倒过来。因此代码非常简单,如下所示:

    # -*- coding:utf-8 -*-
    # class ListNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution:
        # 返回从尾部到头部的列表值序列,例如[1,2,3]
        # 这个题目没有把条件说清楚,因此有很多种可能啊!
        # listNode不是一连串的Node而是Node的头....
        def printListFromTailToHead(self, listNode):
            # write code here
                ls=[]
                while listNode:
                    ls.append(listNode)
                    listNode=listNode.next
                ls_two=[]
                i=len(ls)-1
                while i>=0:
                    ls_two.append(ls[i].val)
                    i-=1
                return ls_two

    分分钟求解掉。

  • 相关阅读:
    java.util.Dictionary源码分析
    java.util.HashMap源码分析
    公钥密码与数字签名
    迭代器模式(Iterator Pattern)
    EIGamal密码体制
    RSA安全性问题
    观察者模式(Observer Pattern)
    不对称密钥密码体系之RSA
    大道至简第七章读后感
    产生随机数
  • 原文地址:https://www.cnblogs.com/geeksongs/p/13496197.html
Copyright © 2011-2022 走看看