145. Binary Tree Postorder Traversal
Stack, Tree, DFS, Binary Tree, Review ·Problem Statement
link: https://leetcode.com/problems/binary-tree-postorder-traversal/ https://leetcode.cn/problems/binary-tree-postorder-traversal/
Given the root of a binary tree, return the postorder traversal of its nodes’ values.
Example:
Input: root = [1,null,2,3]
Output: [3,2,1]
Input: root = []
Output: []
Input: root = [1]
Output: []
Solution Approach
recursion & deque
Algorithm
Implement
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
if not root:
return []
else:
return self.postorderTraversal(root.left) + self.postorderTraversal(root.right) + [root.val]
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
stack = [root]
res = deque([])
while stack:
node = stack.pop()
if node:
res.appendleft(node.val)
stack.append(node.left)
stack.append(node.right)
return list(res)