题目描述
分别按照二叉树先序,中序和后序打印所有的节点。
示例1
输入
{1,2,3}
输出
[[1,2,3],[2,1,3],[2,3,1]]
简单的递归算法:
function threeOrders( root ) {
// write code here
let p1 = []
let p2 = []
let p3 = []
function pre(ro){
if(!ro){
return p1;
}
p1.push(ro.val)
if(ro.left){
pre(ro.left);
}
if(ro.right){
pre(ro.right);
}
return p1;
}
function mid(root){
if(!root){
return p2;
}
if(root.left){
mid(root.left);
}
p2.push(root.val)
if(root.right){
mid(root.right);
}
return p2;
}
function last(root){
if(!root){
return p3;
}
if(root.left){
last(root.left);
}
if(root.right){
last(root.right);
}
p3.push(root.val)
return p3;
}
let result = []
result.push(pre(root))
result.push(mid(root))
result.push(last(root))
return result;
}