/**
* 前序遍历
*
* @param root 树的根节点
*/
static void preOrder(TreeNode root) {
if (root == null) {
return;
}
//先遍历根节点
System.out.println(root.value);
preOrder(root.left);
preOrder(root.right);
}
/**
* 中序遍历
*
* @param root 树的根节点
*/
static void inOrder(TreeNode root) {
if (root == null) {
return;
}
inOrder(root.left);
System.out.println(root.value);
inOrder(root.right);
}
/**
* 后序遍历
*
* @param root 树的根节点
*/
static void postOrder(TreeNode root) {
if (root == null) {
return;
}
postOrder(root.left);
postOrder(root.right);
System.out.println(root.value);
}
/**
* 层序遍历
*
* @param root 树的根节点
*/
static void levelOrder(TreeNode root) {
if (root == null) {
return;
}
Queue<TreeNode> q = new LinkedList<>();
q.offer(root);
while (!q.isEmpty()) {
TreeNode n = q.poll();
System.out.println(n.value);
//将左右结点放入队列
if (n.left != null) {
q.offer(n.left);
}
if (n.right != null) {
q.offer(n.right);
}
}
}