zoukankan      html  css  js  c++  java
  • 牛客网 剑指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
     
  • 相关阅读:
    Java基础-3y
    对线面试官面试系列-3y
    从零单排学Redis【青铜】
    mock官方文档
    route路由组件传递参数
    axios拦截器与vue代理设置
    Sass使用方法
    Less使用方法
    Vue-cli
    Vue-组件注册
  • 原文地址:https://www.cnblogs.com/upstart/p/15015998.html
Copyright © 2011-2022 走看看