NC13 二叉树的最大深度

2021-10-19  本文已影响0人  Abeants

描述
求给定二叉树的最大深度,
深度是指树的根节点到任一叶子节点路径上节点的数量。
最大深度是所有叶子节点的深度的最大值。

数据范围:0 \le n \le 1000000≤n≤100000,树上每个节点的val满足 |val| \le 100∣val∣≤100
要求: 空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
示例1
输入:
{1,2}
复制
返回值:
2
复制
示例2
输入:
{1,2,3,4,#,#,5}
复制
返回值:
3

解题思路及方法

很简单的递归,根节点高度加上最长的子树高度,一直递归即可。

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    public int maxDepth (TreeNode root) {
        // write code here
        if (root == null) return 0;
        
        return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
    }
}

结果如下:

上一篇下一篇

猜你喜欢

热点阅读