算法通关村第八关-白银挑战二叉树的深度和高度问题

大家好我是苏麟 , 今天说说几道二叉树深度和高度相关的题目 .

LeetCode给我们造了一堆的题目,研究一下104、110和111三个题,这三个颗看起来挺像的,都是关于深度、高度的。

最大深度问题

描述 :

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

题目 :

LeetCode 104.二叉树的最大深度 :

104. 二叉树的最大深度

算法通关村第八关-白银挑战二叉树的深度和高度问题_第1张图片

分析 :

我们举个例子 : 3,5,null,null,7,8

算法通关村第八关-白银挑战二叉树的深度和高度问题_第2张图片

总共就三种情况 :

算法通关村第八关-白银挑战二叉树的深度和高度问题_第3张图片

第一种情况和第二种情况都有子节点所以深度 +1 , 第三种无子节点所以深度为 0

算法通关村第八关-白银挑战二叉树的深度和高度问题_第4张图片

从叶子节点开始往上加 , 如果左右子节点都有则比较选择大的 .

解析 :

/**
 * 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);
    }
}

这期就到这里 , 下期见!

你可能感兴趣的:(算法村,算法,数据结构,leetcode,java)