《剑指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
分分钟求解掉。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步