大家好我是苏麟 , 今天说说几道二叉树深度和高度相关的题目 .
LeetCode给我们造了一堆的题目,研究一下104、110和111三个题,这三个颗看起来挺像的,都是关于深度、高度的。
最大深度问题
描述 :
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
题目 :
LeetCode 104.二叉树的最大深度 :
104. 二叉树的最大深度
分析 :
我们举个例子 : 3,5,null,null,7,8
总共就三种情况 :
第一种情况和第二种情况都有子节点所以深度 +1 , 第三种无子节点所以深度为 0
从叶子节点开始往上加 , 如果左右子节点都有则比较选择大的 .
解析 :
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public int maxDepth(TreeNode root) {
return nodeNum(root);
}
public int nodeNum(TreeNode root){
if(root == null){
return 0;
}
int x = nodeNum(root.left);
int y = nodeNum(root.right);
return 1 + Math.max(x,y);
}
}
这期就到这里 , 下期见!