144.二叉树的前序遍历
10min
二叉树的前序遍历的顺序是中 - 左 - 右
先遍历完所有的根节点与左节点,然后处理右节点
可以看出来这是一个递归的行为,递归问题可以用栈来进行简化
迭代解法
var preorderTraversal = function(root) {
if (!root) return null var stack = [root]
var res = []
while(stack.length) {
var node = stack.pop()
res.push(node.val)
node.right && stack.push(node.right)
node.left && stack.push(node.left)
}
return res
};递归解法
递归问题当然可以递归解决
var preorderTraversal = function(root) {
var res = []
if (!root) return res
var travel = function (node) {
res.push(node.val)
node.left && travel(node.left)
node.right && travel(node.right)
}
travel(root)
return res
};