二叉树定义:
二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序,不能随意颠倒。更多解释,详见堆和堆排序。
一、递归遍历
1、先序遍历
根左右。a,b,d,e,c,f,g
/**
* 二叉树:先序遍历。根-左-右
*
* 经典递归写法
*
* @author Java和算法学习:周一
*/
public static void pre(Node head) {
if (head == null) {
return;
}
System.out.println(head.value);
pre(head.left);
pre(head.right);
}
2、中序遍历
左根右。d,b,e,a,f,c,g
/**
* 二叉树:中序遍历。左-根-右
*
* 经典递归写法
*
* @author Java和算法学习:周一
*/
public static void in(Node head) {
if (head == null) {
return;
}
in(head.left);
System.out.println(head.value);
in(head.right);
}
3、后序遍历
左右根。d,e,b,f,g,c,a
/**
* 二叉树:后序遍历。左-右-根
*
* 经典递归写法
*
* @author Java和算法学习:周一
*/
public static void pos(Node head) {
if (head == null) {
return;
}
pos(head.left);
pos(head.right);
System.out.println(head.value);
}
经典的递归版先序、中序、后序遍历,我们再熟悉不过了,今天我们说些不同的,<