前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
层序遍历:从上往下、从左往右
递归遍历:使用递归方法遍历
迭代遍历:使用迭代方法实现递归函数,与递归等价morris遍历!
前序遍历
public static void preorder(TreeNode root){
if (root == null){
return;
}
System.out.println(root.val);//前序:第一次成为栈顶元素即打印
preorder(root.left);
preorder(root.right);
}
输出:1 2 4 5 6 7 3
中序遍历
public static void midorder(TreeNode root){
if (root == null){
return;
}
midorder(root.left);
System.out.print(root.val);
midorder(root.right);
}
输出:4 2 6 5 7 1 3
后序遍历
public static void endorder(TreeNode root){
if (root == null){
return;
}
endorder(root.left);
endorder(root.right);
System.out.print(root.val);
}
输出:4 6 7 5 2 3 1