牛客网 剑指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

     

 
posted @ 2021-07-15 16:02  zhang_upstar  阅读(33)  评论(0编辑  收藏  举报