【剑指offer】55. 二叉树的深度

题目描述

在这里插入图片描述

在这里插入图片描述

// 55. 二叉树的深度

// 力扣
// 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次
// 经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度
// 为树的深度。


// 牛客
// 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(
// 含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

题解


///


// 力扣
// 遍历树,从叶节点到末端返回0,除此之外经过结点就+1,取right和left较大
// 的一边累加,最终可以得到树深度。
// 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
// 内存消耗:38.4 MB, 在所有 Java 提交中击败了54.31%的用户
class Solution {
	public int maxDepth(TreeNode root) {
		if (root == null)
			return 0;
		int left = maxDepth(root.left);
		int right = maxDepth(root.right);
		return (left > right) ? left + 1 : right + 1;
    }
}


// 力扣
// 或者这样写
// 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
// 内存消耗:38.4 MB, 在所有 Java 提交中击败了47.72%的用户
class Solution {
	public int maxDepth(TreeNode root) {
		return (root == null) ? 0 : 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
    }
}




// 牛客
// 运行时间:10ms,超过90.74%用Java提交的代码
// 占用内存:9532KB,超过72.37%用Java提交的代码
public class Solution {
    public int TreeDepth(TreeNode root) {
        return (root == null) ? 0 : 1 + Math.max(TreeDepth(root.left), TreeDepth(root.right));
    }
}

猜你喜欢

转载自blog.csdn.net/fisherish/article/details/114766548