大家好我是苏麟 , 今天说说几道二叉树深度和高度相关的题目 .
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);}
}
这期就到这里 , 下期见!