如果二叉樹不為空,根據二叉樹結點的父子結構 有三種周遊方式:前序周遊、中序周遊和後序周遊
1.前序周遊(按傳統:父為大,上左下右)
采用遞歸:父結點——>左孩子——>右孩子
2.中序周遊(很友善:從左到右)
采用遞歸:左孩子——>父結點——>右孩子
3.後序周遊(現代化:孩子優先)
采用遞歸:左孩子——>右孩子——>父結點
示例:
二叉樹
結果:
實作代碼
前序周遊:
public void PreOrder(TreeNode root){
if(root == null){
return;
}
TreeNode cur = root;
if(cur != null){
System.out.print("—" + cur.val +"—");
solve(cur.left);
solve(cur.right);
}
中序周遊:
public void InOrder(TreeNode root){
if(root == null){
return;
}
TreeNode cur = root;
if(cur != null){ //左孩子、父結點、右孩子
solve(cur.left);
System.out.print("—" +cur.val + "—" );
solve(cur.right);
}
}
後序周遊:
public void solve(TreeNode root){
if(root == null){
return;
}
TreeNode cur = root;
if(cur != null){ //先左右孩子,後父親結點
solve(cur.left);
solve(cur.right);
System.out.print("—" + cur.val +"—");
}
}