问题描述
给定一个二叉树,返回它的 后序 遍历。
代码
方案一:
var postorderTraversal = function(root) {
let res = [],stack = [];
while(root){
if(root.left){
stack.push(root);
root = root.left;
}else if(root.right){
stack.push(root);
root = root.right;
}else{
res.push(root.val);
root = stack.pop();
if(root && root.left) root.left = null;
else if(root && root.right) root.right = null;
}
}
return res;
};
方案二:
var postorderTraversal = function(root) {
let res = [],stack = [];
while(root){
res.unshift(root.val);
if(root.left){stack.push(root.left)}
if(root.right){stack.push(root.right)}
root = stack.pop();
}
return res;
};