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

深圳建设集团有限公司有分公司吗网站对图片优化

深圳建设集团有限公司有分公司吗,网站对图片优化,简单网页设计模板代码,网络共享和数据传输事件文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:左叶子之和 出处:404. 左叶子之和 难度 3 级 题目描述 要求 给你二叉树的根结点 root \texttt{ro…

文章目录

  • 题目
    • 标题和出处
    • 难度
    • 题目描述
      • 要求
      • 示例
      • 数据范围
  • 解法一
    • 思路和算法
    • 代码
    • 复杂度分析
  • 解法二
    • 思路和算法
    • 代码
    • 复杂度分析

题目

标题和出处

标题:左叶子之和

出处:404. 左叶子之和

难度

3 级

题目描述

要求

给你二叉树的根结点 root \texttt{root} root,返回所有左叶子之和。

示例

示例 1:

示例 1

输入: root = [3,9,20,null,null,15,7] \texttt{root = [3,9,20,null,null,15,7]} root = [3,9,20,null,null,15,7]
输出: 24 \texttt{24} 24
解释:二叉树中有两个左叶子,结点值分别是 9 \texttt{9} 9 15 \texttt{15} 15

示例 2:

输入: root = [1] \texttt{root = [1]} root = [1]
输出: 0 \texttt{0} 0

数据范围

  • 树中结点数目在范围 [1, 1000] \texttt{[1, 1000]} [1, 1000]
  • -1000 ≤ Node.val ≤ 1000 \texttt{-1000} \le \texttt{Node.val} \le \texttt{1000} -1000Node.val1000

解法一

思路和算法

为了计算左叶子之和,需要找到二叉树中的所有是左子结点的叶结点并计算这些结点之和。可以使用深度优先搜索实现。

从根结点开始遍历二叉树,对于每个结点,首先判断其左右子结点是否为空,然后对非空子结点执行如下操作。

  • 如果左子结点不为空,当左子结点是叶结点时将左子结点的值加到左叶子之和,当左子结点不是叶结点时在左子树中继续遍历。

  • 如果右子结点不为空且不是叶结点,则在右子树中继续遍历。

上述过程是一个递归的过程,递归的终止条件是当前结点为叶结点或者当前结点的非空子结点都为叶结点,其余情况都会调用递归。由于只有在访问到的结点的左子结点是叶结点的情况下才会将左子结点值加到左叶子之和,因此可以确保每个左叶子都被计算一次且其他结点都不会被计算。

代码

class Solution {public int sumOfLeftLeaves(TreeNode root) {int sum = 0;if (root.left != null) {if (isLeaf(root.left)) {sum += root.left.val;} else {sum += sumOfLeftLeaves(root.left);}}if (root.right != null && !isLeaf(root.right)) {sum += sumOfLeftLeaves(root.right);}return sum;}public boolean isLeaf(TreeNode node) {return node.left == null && node.right == null;}
}

复杂度分析

  • 时间复杂度: O ( n ) O(n) O(n),其中 n n n 是二叉树的结点数。每个结点都被访问一次。

  • 空间复杂度: O ( n ) O(n) O(n),其中 n n n 是二叉树的结点数。空间复杂度主要是递归调用的栈空间,取决于二叉树的高度,最坏情况下二叉树的高度是 O ( n ) O(n) O(n)

解法二

思路和算法

也可以使用广度优先搜索计算左叶子之和。

广度优先搜索需要使用队列存储待访问的结点,初始时将根结点入队列。每次将一个结点出队列,首先判断其左右子结点是否为空,然后对非空子结点执行如下操作。

  • 如果左子结点不为空,当左子结点是叶结点时将左子结点的值加到左叶子之和,当左子结点不是叶结点时将左子结点入队列。

  • 如果右子结点不为空且不是叶结点,则将右子结点入队列。

当队列为空时遍历结束,此时即可得到左叶子之和。

由于只有在访问到的结点的左子结点是叶结点的情况下才会将左子结点值加到左叶子之和,因此可以确保每个左叶子都被计算一次且其他结点都不会被计算。

代码

class Solution {public int sumOfLeftLeaves(TreeNode root) {int sum = 0;Queue<TreeNode> queue = new ArrayDeque<TreeNode>();queue.offer(root);while (!queue.isEmpty()) {TreeNode node = queue.poll();if (node.left != null) {if (isLeaf(node.left)) {sum += node.left.val;} else {queue.offer(node.left);}}if (node.right != null) {if (!isLeaf(node.right)) {queue.offer(node.right);}}}return sum;}public boolean isLeaf(TreeNode node) {return node.left == null && node.right == null;}
}

复杂度分析

  • 时间复杂度: O ( n ) O(n) O(n),其中 n n n 是二叉树的结点数。每个结点都被访问一次。

  • 空间复杂度: O ( n ) O(n) O(n),其中 n n n 是二叉树的结点数。空间复杂度主要是队列空间,队列内元素个数不超过 n n n

http://www.yayakq.cn/news/807481/

相关文章:

  • 网站icp没有备案怎么检查为企业进行网站建设方案
  • 南宁seo网站推广服务石家庄专业信息门户网站定制
  • 建设银行网站密码忘记了咋办网页如何发布
  • 品牌网站建设小蝌蚪1a做公司简介需要多少钱
  • 西宁网站设计wordpress怎么设置title
  • 小公司如何做网站隔离彩票网站有人做吗
  • 怎样自己做公司网站公司信息查询网
  • 东莞市网站建设平台重庆妇科医院免费咨询
  • 聊天室网站开发wordpress外贸营销插件
  • 网站的运营和维护广告图片
  • asp建站系统源码关键词优化需要从哪些方面开展
  • 网站建设新技术外贸公司网站建设费会计科目
  • 高端交互式网站建设手机客户端app下载安装
  • 内部建设网站需要什么条件0wordpress
  • 怎样用dw做网站主页沧州网站建设cztj
  • 建设部网站材料价格上涨规定鞍山公司做网站
  • seo公司赚钱吗东营网站seo
  • 一家专门做特产的网站西安网站建设 至诚
  • 企业做定制网站的好处WordPress邮箱验证登录
  • 做高端企业网站wordpress评论时间
  • 网站建设大致分哪几块杭州建设工程招标平台官网
  • 做网站哪家便宜电脑上怎么删除wordpress
  • 2018网站建设行业wordpress 父页面
  • 在什么网站做外贸如何用apache建设网站
  • 网站是空间备案室内装饰设计师证
  • 网站建设教程.中国建设银行官网入口
  • 杭州建设局网站首页做羊水亲子鉴定网站
  • 微信做淘宝客 网站打不开了深圳4a广告公司有哪些
  • 网站推广计划书甘肃网站建设选哪家
  • 可做影视网站的服务器怎么样做深网的网站