剑指Offer--Java--二叉树的深度
发布日期:2021-05-04 06:37:23 浏览次数:28 分类:精选文章

本文共 617 字,大约阅读时间需要 2 分钟。

题目描述

输入一棵二叉树的根结点,求该树的深度。

从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

样例描述

输入:二叉树[8, 12, 2, null, null, 6, 4, null, null, null, null]如下图所示:    8   / \  12  2     / \    6   4输出:3/** * Definition for a binary tree node. * public class TreeNode {    *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) {    val = x; } * } */

思路

  1. 递归,二叉树的深度其实是根结点的左子树和右子树较深的那个的深度加1。
  2. 注意要范围限制 root!=null,不然会报空指针错误。
  3. Math类下的max方法用于求两者的最大值。

代码

class Solution {       public int treeDepth(TreeNode root) {           if(root==null) return 0;        return Math.max(treeDepth(root.left),treeDepth(root.right))+1;    }}
上一篇:剑指Offer--Java--平衡二叉树
下一篇:剑指Offer--Java--二叉搜索树的第k个结点

发表评论

最新留言

不错!
[***.144.177.141]2025年03月24日 13时06分37秒