重点:回溯是执行该调用之后的代码,而不是其他全部代码
中序遍历
var inorderTraversal = function(root) {
var res = [];
function dfs(root) {
if(!root) return null
dfs(root.left)
res.push(root.val)
dfs(root.right)
}
dfs(root)
return res;
};
后序遍历
var postorderTraversal = function(root) {
var res = [];
function dfs(root) {
if(!root) return
dfs(root.left);
dfs(root.right);
res.push(root.val)
}
dfs(root)
return res
};
前序遍历
var preorderTraversal = function(root,res = []) {
if(root === null) {
return [];
}
res.push(root.val)
preorderTraversal(root.left,res)
preorderTraversal(root.right,res)
return res
};