zoukankan      html  css  js  c++  java
  • 【剑指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. 链表中没有节点

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

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

  • 相关阅读:
    adfs环境安装
    joinquant网站
    test
    对C转换说明符的误解以及关于数组的一些知识
    正确求平方根的整数部分方法
    单链表的交换排序法
    链表的冒泡排序
    240页345题
    C语言中对数组名取地址
    单链表的基础操作练习
  • 原文地址:https://www.cnblogs.com/RebeccaG/p/11954638.html
Copyright © 2011-2022 走看看