本周做了一部分关于树的算法,在这里也总结一下遍历数的四种方法。
1.先序遍历 (先根,再左,后右)
2.中序遍历 (先左,再根,后右)
3.后序遍历 (先左,再右,后根)
4.层序遍历 (从每层的左边开始遍历,我自己没有用过)
一、来一道题。
1.先序结果:FCADBEHGM
2.中序结果:ACBDFHEMG
3.后序结果:ABDCHMGEF
4.层序结果:FCEADHGBM
二、递归实现
public static void Tree(TreeNode root){
//先写出递归的结束条件
if(root == null){
return;
}
//先序
System.out.println(root.val); //先根
Tree(root.left); //再左
Tree(root.right); //后右
//中序
Tree(root.left); //先左
System.out.println(root.val); //再根
Tree(root.right); //后右
//后序
Tree(root.left); //先左
Tree(root.right); //再右
System.out.println(root.val); //后根
}
算法中这样实现简单,但是理解比较困难。。
三、非递归实现
本人小菜鸡,下面的理解也是查出来的。