专栏首页用户7873631的专栏leetcode:104二叉树的最大深度

leetcode:104二叉树的最大深度

思路:用深度优先遍历。 深度优先遍历是尽可能深的遍历这棵树。 怎么做? 新建一个变量记录每一个节点的层级,找到最大的层级即可。

解题步骤: 新建一个变量对其深度的记录,返回最大的记录即可。

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxDepth = function(root) {
    let res=0;//层次数
    const dfs=(n,l)=>
    {
        if(!n)//没有值就退出把。
        {
            return;
        }
        if(!n.left&&!n.right)//叶子节点就结束了
        {
            res=Math.max(res,l);//取较大的数
        }
        dfs(n.left,l+1);
        dfs(n.right,l+1);
    };
    dfs(root,1);
    return res;
};

这道题的遍历流程: 核心:尽可能的深。 先左后右。 因为对3进行深度优先遍历所以把3看成根节点。先访问根节点。 然后先对3的左边进行深度优先遍历。3的左边是9所以对9进行深度优先遍历,把9看成根节点,先访问根节点。然后对其下的left进行深度优先遍历。 因为9的下面什么都没有了就为叶子节点了。 因为左边完了,所以右边了。 然后对3的右边进行深度优先遍历,是20,把20看成根节点,先访问根节点。对其下的进行深度优先遍历,20下面是15,然后对15进行深度优先遍历,15后面什么都没有,先访问根节点。所以15为叶子节点第三层次。 然后对20的右边进行深度优先遍历,是7,把7看成根节点,先访问根节点。对其下的进行深度优先遍历,什么都没有为叶子节点(第三层次),完成了。 流程的问题? 对谁进行深度优先遍历,比如对3进行深度优先遍历就把3看成根节点。 深度优先遍历是根节点及以下的,比如左的最深度及其右的最深度哈。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • js逐步教实现音乐系统

    我只说最难点:flex:1;代表太大了就缩小到占满整个body的部分(系统合理分配),太小了就扩大到合适到占满整个整个body的地步(系统合理分配).

    用户7873631
  • leetcode:283 移动零

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 意思:0全部在末尾,非零在前面,并且保证非0的按照之前的顺序排...

    用户7873631
  • leetcode:15 三数之和

    题目: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且...

    用户7873631
  • Leetcode: Construct Binary Tree from Inorder and Postorder Traversal

    题目: Given inorder and postorder traversal of a tree, construct the binary tree...

    卡尔曼和玻尔兹曼谁曼
  • 剑指offer 33——二叉搜索树的后序遍历序列

    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。

    健程之道
  • L2-006. 树的遍历

    给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。

    指点
  • 极客算法训练笔记(八),十大经典排序之堆排序,被树耽误的数组

    堆排序在排序复杂性的研究中有着重要的地位,因为他是我们所知的唯一能够同时最优的利用空间和时间的方法,当空间十分紧张的时候(例如嵌入式系统或者低成本的移动设备中)...

    阿甘的码路
  • 前序遍历中序遍历求后序遍历-数组篇

    如果已知前序遍历和中序遍历,那么肯定能够求出后序遍历。正常的思路就是,根据前序遍历和中序遍历,我们把二叉树的结构给描述出来,然后再使用后序遍历。

    chain
  • Day 4:重建二叉树

    思路1: 背景知识介绍:   首先我们应该了解的是:   前序遍历的顺序是:根——左结点——右结点   中序遍历的顺序是:左结点——根——右结点   ...

    stefan666
  • 【图解数据结构】 一组动画彻底理解二叉树遍历

    定义:二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。

    五分钟学算法

扫码关注云+社区

领取腾讯云代金券