144. 二叉树的前序遍历 javascript
题目:
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
示例
输入:root = [1,null,2,3]
输出:[1,2,3]
输入:root = []
输出:[]
输入:root = [1]
输出:[1]
输入:root = [1,2]
输出:[1,2]
输入:root = [1,null,2]
输出:[1,2]
代码1 递归方法
var preorderTraversal = function(root) {
if (!root) return []
let res = [];
res.push(root.val);
if (root.left) res = res.concat(preorderTraversal(root.left))
if (root.right) res = res.concat(preorderTraversal(root.right))
return res;
};
代码2 非递归方法 – 可以用栈进行操作
var preorderTraversal = function(root) {
if(!root) return [];
let stack = [root];
let res = [];
while (stack.length) {
let item = stack.pop();
res.push(item.val);
item.right && stack.push(item.right);
item.left && stack.push(item.left);
}
return res;
};
学艺不精,还需努力💪