【剑指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

 用例:

  1. 链表中有多个节点
  2. 链表中只有一个节点
  3. 链表中没有节点

最近写题的时候都没有按一定的顺序来,之前刚学完数据结构,现在又不用。今天开始按照分类的顺序来刷题,集中练习。

加油!付出一定会有回报的!春招努力!!

原文地址:https://www.cnblogs.com/RebeccaG/p/11954638.html