牛客网 剑指offer JZ3 从尾到头打印链表

描述

输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
 
 
首先,想用python 递归的话,还是要注意一个问题,循环默认不超过1000,改大一点
 
[] 是可以使用常规运算的
 
递归到最后一层为None, 然后向上逐级返回就好了
import sys
sys.setrecursionlimit(5000)

class Solution:
    def printListFromTailToHead(self, listNode):
        if listNode == None:return []
        return self.printListFromTailToHead(listNode.next) + [listNode.val]
  1. 创建链表

    #创建链表 这里实际上用了队列的方法 但也可以表示链表
    linkedlist=deque()
  2. 添加元素

    #append()方法   O(1)
    linkedlist.append(1)
    linkedlist.append(2)
    linkedlist.append(3)
    print(linkedlist) #[1,2,3]
    #insert()方法   O(N)  和数组中的用法一样
    linkedlist.insert(2,99)
    print(linkedlist) #[1,2,99,3]
  3. 访问元素

    #O(N)
    element=linkedlist[2]
    print(element) #99
  4. 查找元素

    #index() 找到值为输入值的索引 O(N)
    index=linkedlist.index(99)
    print(index)  #2
  5. 删除元素

    #remove() O(N)
    linkedlist.remove(99)
    print(linkedlist) #[1,2,3]
  6. 链表的长度

    #len()方法 O(1)
    length=len(linkedlist) 
    print(length) #3
 
原文地址:https://www.cnblogs.com/upstart/p/15015998.html