Description
Given the root
of a binary tree, return the preorder traversal of its nodes’ values.
Example 1:
Input: root = [1,null,2,3]
Output: [1,2,3]
Example 2:
Input: root = []
Output: []
Example 3:
Input: root = [1]
Output: [1]
Constraints:
- The number of nodes in the tree is in the range
[0, 100]
.
-100 <= Node.val <= 100
Follow up: Recursive solution is trivial, could you do it iteratively?
Code
Iterative
將所有 node 都 push 到 stack 上,經由 pop 的過程來執行 preorder traversal。
另一種做法是只將 right child push 到 stack 上,其他部分的 traversal 藉由 root pointer 的移動來達成。
Source