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
     
  • 相关阅读:
    input框和文字对齐问题
    滚动条位置判断
    【HDOJ】2007平方和与立方和
    POJ3177 Redundant Paths
    POJ3694 Network(tarjan求桥)
    UVA315 Network
    POJ1236 Network of schools
    ZOJ1008 Gnome Tetravex
    ZOJ007 Numerical Summation of a Series(纯数学)
    ZOJ1006 Do the Untwist
  • 原文地址:https://www.cnblogs.com/upstart/p/15015998.html
Copyright © 2011-2022 走看看