6.从尾到头打印列表 | python
从尾到头打印链表
http://www.nowcoder.com/questionTerminal/d0267f7f55b3412ba93bd35cfa8e8035
- 利用栈
class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here a = [] b = [] while listNode: a.append(listNode.val) listNode = listNode.next while a : b.append(a.pop()) return b
- 利用递归
递归代码虽然简洁,但是当链表非常长的时候,就会导致函数调用的层级很深,从而导致函数调用栈溢出,用栈实现的鲁棒性要好一点。class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here a = [] if not listNode: return a def helper(listNode): if listNode.next: helper(listNode.next) return a.append(listNode.val) helper(listNode) return a