1. 程式人生 > >二叉樹的深度(Java實現)

二叉樹的深度(Java實現)

本題為劍指offer面試題39

牛客網測試地址:https://www.nowcoder.com/questionTerminal/435fb86331474282a3499955f0a41e8b

  • 時間限制:1秒空間限制:32768K
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
package go.jacob.day513;

public class Demo1 {
	public int TreeDepth(TreeNode root) {
		if (root == null)
			return 0;
		int result = depth(root);
		return result;
	}

	/*
	 * k只記錄當前層的深度
	 */
	private int depth(TreeNode root) {
		if (root == null)
			return 0;
		// 樹的深度為其左右子樹深度+1
		return max(depth(root.left), depth(root.right))+1;
	}

	private int max(int a, int b) {
		return a > b ? a : b;
	}

	/*
	 * 二叉樹節點類
	 */
	class TreeNode {
		int val = 0;
		TreeNode left = null;
		TreeNode right = null;
		public TreeNode(int val) {
			this.val = val;
		}

	}
}