递归
常规遍历
1.简易版【前+中+后】
var traversal= (root) => {
if (root) {
return [root.val, ...traversal(root.left), ...traversal(root.right)]
return [ ...traversal(root.left), root.val, ...traversal(root.right)]
return [ ...traversal(root.left), ...traversal(root.right), root.val]
} else {
return []
}
}
2.万能模板【前+中+后】
var traversal = function(root) {
let ans = [];
dfs(root, ans);
return ans;
}
var dfs = (root, ans) => {
if(!root) return;
ans.push(root.val);
dfs(root.left, ans);
dfs(root.right, ans);
dfs(root.left, ans);
ans.push(root.val);
dfs(root.right, ans);
dfs(root.left, ans);
dfs(root.right, ans);
ans.push(root.val);
}
3.层序遍历-递归版
var levelOrder = function(root) {
const res = []
function traversal (root, depth) {
if (<