QUESTION:
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]
Example 4:
Input: root = [1,2]
Output: [1,2]
Example 5:
Input: root = [1,null,2]
Output: [1,2]
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?
EXPLANATION:
前序遍历, 也没有什么需要说的. 只是需要注意swift的extension的应用. 具体可以看官方文档
SOLUTION:
extension TreeNode {
func preTraversal(value: (Int) -> Void) {
value(val)
left?.preTraversal(value: value)
right?.preTraversal(value: value)
}
}
class Solution {
func preorderTraversal(_ root: TreeNode?) -> [Int] {
var values: [Int] = []
root?.preTraversal { result in
values.append(result)
}
return values
}
}