题解 | #二叉树的后序遍历# #清晰版
二叉树的后序遍历
https://www.nowcoder.com/practice/1291064f4d5d4bdeaefbf0dd47d78541
#coding:utf-8 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param root TreeNode类 # @return int整型一维数组 # class Solution: def __init__(self): self.path = [] self.stack = [] def postorderTraversal(self , root ): # write code here #dfs #self.dfs(root) #travel self.travel(root) print ("Path: ", self.path) return self.path def travel(self, node): if node == None: return last = node self.stack.append(node) while len(self.stack) > 0: peek = self.stack[-1] if peek.left != None and peek.left != last and peek.right != last: self.stack.append(peek.left) elif peek.right != None and peek.right != last: self.stack.append(peek.right) else: last = self.stack.pop() #self.path.append(self.stack.pop().val) self.path.append(last.val) #last = peek return def dfs(self, node): if node == None: return self.dfs(node.left) self.dfs(node.right) self.path.append(node.val) return