天天看點

二叉樹的周遊:前序周遊、中序周遊和後序周遊

如果二叉樹不為空,根據二叉樹結點的父子結構 有三種周遊方式:前序周遊、中序周遊和後序周遊

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 +"—");
		}	
		
	}
           

繼續閱讀