【剑指offer】08-从尾到头打印链表
题目:
输入一个链表,从尾到头打印链表每个节点的值。
思考:
链表之前学过了,是一种动态的数据结构,不用知道它的长度。每个节点的指针,指向下一个节点。每个节点的内存,都是在节点添加的时候分配的。
从头到尾打印链表 --> 直接遍历,然后print
现在是从尾巴开始打印 --> 找一个数组,用来在其尾部添加链表的元素,然后将数组翻转,打印出来
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): if not listNode: return [] else: p = [] while listNode.next is not None: # 列表结构,链表中一一取出来的值,放到栈里面,再将列里面的值倒叙打印出来 p.append(listNode.val) listNode = listNode.next p.append(listNode.val) p.reverse() return p
用例:
- 链表中有多个节点
- 链表中只有一个节点
- 链表中没有节点
最近写题的时候都没有按一定的顺序来,之前刚学完数据结构,现在又不用。今天开始按照分类的顺序来刷题,集中练习。
加油!付出一定会有回报的!春招努力!!