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