当前位置: 首页 > news >正文

淘宝装修免费模板有哪些网站网站正在建设源代码

淘宝装修免费模板有哪些网站,网站正在建设源代码,宣城市建设银行网站,wordpress 添加搜索引擎力扣日记:【二叉树篇】二叉树的最大深度 日期:2023.11.27 参考:代码随想录、力扣 104. 二叉树的最大深度 题目描述 难度: 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最…

力扣日记:【二叉树篇】二叉树的最大深度

日期:2023.11.27
参考:代码随想录、力扣

104. 二叉树的最大深度

题目描述

难度:

给定一个二叉树 root ,返回其最大深度。

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

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:3

示例 2:

输入:root = [1,null,2]
输出:2

提示:

  • 树中节点的数量在 [0, 10^4] 区间内。
  • -100 <= Node.val <= 100

题解

递归法(cpp ver)
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:// 递归法:后序遍历 (实际上是求高度)// 1. 确定递归函数的参数和返回值:参数就是传入树的根节点,返回就返回以该节点为根的树的深度int getdepth(TreeNode* node) {  // 2. 确定终止条件:如果为空节点的话,就返回0,表示高度为0。if (node == NULL) return 0;// 3. 确定单层递归的逻辑:先求它的左子树的深度,再求右子树的深度,最后取左右深度最大的数值 再+1 (加1是因为算上当前中间节点)就是目前节点为根节点的树的深度。int leftdepth = getdepth(node->left);       // 左(左子树的高度)int rightdepth = getdepth(node->right);     // 右(右子树的高度)int depth = 1 + max(leftdepth, rightdepth); // 中(左子树和右子树的根节点的高度, 包括根节点, 故+1)return depth;}int maxDepth(TreeNode* root) {return getdepth(root);}
};
迭代法(go ver)
/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
func maxDepth(root *TreeNode) int {// 使用迭代法的话,使用层序遍历是最为合适的,因为最大的深度就是二叉树的层数,和层序遍历的方式极其吻合queue := list.New()maxDepth := 0if root != nil {queue.PushBack(root)}for queue.Len() > 0 {// 记录当前队列长度size := queue.Len()for size > 0 {// 弹出并写入结果front := queue.Front()node := queue.Remove(front).(*TreeNode) // 存进list之后类型会变为*list.Element,要转换为*TreeNode// 左右节点入队列if node.Left != nil {queue.PushBack(node.Left)}if node.Right != nil {queue.PushBack(node.Right)}size -= 1}maxDepth += 1}return maxDepth
}

复杂度

时间复杂度:
空间复杂度:

思路总结

  • 本题如果用迭代法,则直接使用层序遍历的模板解题即可
  • 如果用递归法,则相对难一些:
    • 首先要理解二叉树的深度高度区别:
      • 二叉树节点的深度:指从根节点该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)—— 即深度是从某节点角度往上(根节点)看的
      • 二叉树节点的高度:指从该节点叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)—— 即高度是从某节点角度往下(叶子节点)看的
      • 因此,根节点的高度就是二叉树的最大深度
    • 本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,即最大的叶子节点深度,使用后序求的是高度,即根节点的高度。(后序遍历相对容易理解一些,见代码)
http://www.15wanjia.com/news/163404.html

相关文章:

  • 国外h5网站模板招聘网站开发视频
  • 开封做网站推广制造网
  • php网站开发 多少钱天津市房地产官网
  • 网站制作需要网站制作怀仁建设局网站
  • 网站建设微信托管华创网站建设
  • 做电子画册的网站组网方案
  • 查看公司信息的网站提供seo服务
  • 门户网站建设如何入账西安seo关键词查询
  • 万网虚拟机怎么做两个网站如何查看自己制作的网站
  • 模板网站制作多少钱移动互联网服务管理中心
  • 公共资源交易中心网站建设汇报商丘软件开发
  • 网站建设公司做网站要多少费用宁晋网站建设多少钱
  • html5 网站开发语言工程机械网
  • 太原定制网站开发制作湖南邵阳建设局网站
  • 印刷下单网站开发延吉市住房城乡建设局官方网站
  • 做网站在线网站表单
  • 如何编写网站备案网站名称怎么写个人
  • 现在做网站有前途吗购物网站每个模块主要功能
  • 外贸业务怎么利用网站开发客户wordpress门户cms
  • 国美电器如何进行网站的建设与维护推广引流工具
  • 石狮网站设计公司系统开发流程8个步骤
  • kol合作推广怎么进行seo
  • 重庆微信网站制作价格做外贸实用网站
  • 宁波网站设计推荐荣盛网络房地产网络推广方案
  • 做新网站怎样提交360初中信息技术 网站制作
  • 男友给女朋友做网站网站建设 客户需求
  • 你认为公司在建立网站时应满足哪些目标公司做网站费用会计处理
  • 受欢迎的做pc端网站什么是网络营销最传统的手法
  • 东大桥做网站的公司搞定设计官网
  • 欧洲做安网站网站建设 有道翻译