首页 > 其他分享 >剑指 Offer 55 - I. 二叉树的深度

剑指 Offer 55 - I. 二叉树的深度

时间:2023-08-02 20:12:02浏览次数:29  
标签:TreeNode Offer 55 max int 二叉树 深度 root

输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。

例如:

给定二叉树 [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7
返回它的最大深度 3 。

使用递归回溯

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    int max = 0;
    //max(左子树的深度,右子树深度)+1
    public int maxDepth(TreeNode root) {
        dfs(root,0);
        return max;
    }
    public void dfs(TreeNode root,int n){
        if(root==null){
            if(n>max){
                max = n;
            }
            return;
        }
        dfs(root.left,n+1);
        dfs(root.right,n+1);
    }
}

标签:TreeNode,Offer,55,max,int,二叉树,深度,root
From: https://www.cnblogs.com/xiaochaofang/p/17601645.html

相关文章

  • 剑指 Offer 03. 数组中重复的数字(简单)
    题目;classSolution{public:intfindRepeatNumber(vector<int>&nums){intresult;unordered_set<int>set;//利用集合寻找重复的数字for(auton:nums){if(set.find(n)==set.end()){//如果set里没找到就加入set......
  • 剑指 Offer 53 - I. 在排序数组中查找数字 I(简单)
    题目:classSolution{public:intsearch(vector<int>&nums,inttarget){intcount=0;for(auton:nums){if(n==target){count++;}}returncount;}};......
  • 横向打印二叉树
    https://www.luogu.com.cn/problem/P8603构造树的过程不难,比较烦人的是如何把这棵树横着打印出来...|-1210-|...|-8-|.......|...|-7.......|-5-|...........|-4首先可以发现,打印的顺序是中序遍历,打印的过程可以在中序遍历的基础上修改classTreeNode:def__init_......
  • live555交叉编译
    一、下载live555源码源码下载路劲为:http://www.live555.com/liveMedia/二、交叉编译下面以aarch64-linux-gnu编译器为例说明交叉编译方法2.1不编译openssl由于live555里面默认使用到openssl,需要先编译openssl,比较麻烦,可以配置不编译进去openssl.1、复制con......
  • 翻转二叉树
    思路:使用层序遍历的方法:将根节点入队,然后将根节点的左节点和右节点交换,每次for循环都执行“如果左节点不为空则将左节点入队,如果右节点不为空就将右节点入队,队头出队,将队头的左右结点交换,然后队头的左右节点不为空,将队头的左右结点入队。1voidceng(Node*node,vector<vector......
  • 对称二叉树
    1boolcompare(Node*left,Node*right){2if(left==NULL&&right!=NULL)returnfalse;3elseif(left!=NULL&&right==NULL)returnfalse;4elseif(left==NULL&&right==NULL)returntrue;5//排除了空节点......
  • 二叉树遍历
    递归实现:前序遍历将根结点输入容器,然后对左子树进行先序遍历,再对右子树进行先序遍历1voidfrontfind(Node*node,vector<int>&vec){2if(node==nullptr){3return;4}5//非终止条件,非递归入口,只需考虑如果只有一个结点需要做什么6......
  • 剑指 Offer 57. 和为s的两个数字
    输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例1:输入:nums=[2,7,11,15],target=9输出:[2,7]或者[7,2]示例2:输入:nums=[10,26,30,31,47,60],target=40输出:[10,30]或者[30,10]双指......
  • 1855 Round 889 (Div. 2)
    DaltontheTeacher给定序列\(a_{1\simn}\),定义一次操作为交换序列中的某两个数,求使得\(\foralli,a_i\not=i\)的最少操作次数对于所有数据,\(n\leq10^5\)计算出\(a_i=i\)的位置数量\(sum\),若\(sum\)为偶数,则让其两两配对交换即可;否则会剩下一个数,在其他......
  • 剑指 Offer 29. 顺时针打印矩阵(简单)
    题目://不可以用代码随想录里螺旋矩阵的思路classSolution{public:vector<int>spiralOrder(vector<vector<int>>&matrix){vector<int>result;if(matrix.empty())returnresult;intrl=0,rh=matrix.size()-1;......