leetcode 104 Maximum Depth of Binary Tree

二叉樹的深度

題目要求:給出一個二叉樹,求得其最大深度。

tags:tree,depth-first search,breadth-first search,recursive

首先想到遞歸做法,如果一個節點爲空,則該節點最大深度爲0,如果不爲空,那麼該節點的最大深度爲其左子樹與右子數最大值加一。

	public static int maxDepth(TreeNode root) {
		if(root==null){
			return 0;
		}else{
			return 1+Math.max(maxDepth(root.left), maxDepth(root.right));
		}  
    }



另外,可以改造先序遍歷,使其可以取得該次遍歷的深度,並設置一個max的全局變量,即可取得最大值。

public static void preOrderTraverse(TreeNode node,int i){
		if(node==null){
			if(max<i){
				max = i;
			}
			return;
		}
		i = i+1;
		System.out.println(node.val+" "+i);
		preOrderTraverse(node.left,i);
		preOrderTraverse(node.right,i);
	}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章