二叉树:
前序遍历:先根次序遍历 (ACFGBDE)
先打印当前的,再打印左边的,再打印右边的。
中序遍历:中根次序遍历 (FCGADBE)
先打印左边的,再打印当前的,再打印右边的
后序遍历:后根次序遍历 (FGCDEBA)
先打印左边的,再打印右边的,再打印当前的。
function Node(value){
this.value = value;
this.left = null;
this.right = null;
}
let a = new Node('a');
let b = new Node('b');
let c = new Node('c');
let d = new Node('d');
let e = new Node('e');
let f = new Node('f');
let g = new Node('g');
a.left = c;
a.right = b;
c.left = f;
c.right = g;
b.left = d;
b.right = e;
// 前序遍历
function f1(root){
if(root == null){
return;
}
console.log(root.value);
f1(root.left);
f1(root.right);
}
// f1(a);
// 中序遍历
function f2(root){
if(root == null){
return;
}
f2(root.left);
console.log(root.value);
f2(root.right);
}
// f2(a);
// 后续遍历
function f3(root){
if(root == null){
return;
}
f3(root.left);
f3(root.right);
console.log(root.value);
}
f3(a);