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

网站建设 开发工具 python手机网站建设的背景

网站建设 开发工具 python,手机网站建设的背景,百度显示网站正在建设中,谷歌三件套404. 左叶子之和 文章目录 [404. 左叶子之和](https://leetcode.cn/problems/sum-of-left-leaves/)一、题目二、题解方法一#xff1a;递归方法二#xff1a;迭代 一、题目 给定二叉树的根节点 root #xff0c;返回所有左叶子之和。 示例 1#xff1a; 输入: root [3,9…404. 左叶子之和 文章目录 [404. 左叶子之和](https://leetcode.cn/problems/sum-of-left-leaves/)一、题目二、题解方法一递归方法二迭代 一、题目 给定二叉树的根节点 root 返回所有左叶子之和。 示例 1 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中有两个左叶子分别是 9 和 15所以返回 24示例 2: 输入: root [1] 输出: 0提示: 节点数在 [1, 1000] 范围内-1000 Node.val 1000 二、题解 方法一递归 算法思路 题目要求计算二叉树中所有左叶子节点的值之和。我们可以使用递归来解决这个问题。递归的思想是对于每个节点我们判断它是否是左叶子节点如果是则将其值加到结果中然后递归地处理它的左子树和右子树。 具体实现 我们首先定义一个变量 sum 来保存左叶子节点值的和并初始化为0。 在递归函数 sumOfLeftLeaves 中我们首先检查当前节点是否为空如果为空则返回0。 然后我们检查当前节点的左子节点是否存在以及左子节点是否为叶子节点。如果是叶子节点则将其值加到 sum 中。 最后我们递归地处理当前节点的左子树和右子树将它们的返回值累加到 sum 中。 在每一层递归结束后函数返回当前子树中左叶子节点的值之和。 /*** 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:int sumOfLeftLeaves(TreeNode* root) {int sum 0;if (root nullptr) {return 0;}// 判断左子节点是否为叶子节点如果是则将值加入 sumif (root-left !root-left-left !root-left-right) {sum root-left-val;}// 递归处理左子树和右子树并累加结果到 sumreturn sum sumOfLeftLeaves(root-left) sumOfLeftLeaves(root-right);} };算法分析 时间复杂度遍历整个二叉树的时间复杂度为 O(N)其中 N 是二叉树的节点数。在每个节点上我们进行常数时间的判断和加法操作。 空间复杂度递归函数的调用会占用栈空间递归的深度最坏情况下为树的高度所以空间复杂度为 O(H)其中 H 是二叉树的高度。在最坏情况下二叉树可能退化为链表高度为 N此时空间复杂度为 O(N)。但在一般情况下二叉树的高度平衡空间复杂度会接近 O(logN)。 方法二迭代 算法思路 我们可以使用深度优先搜索DFS来遍历二叉树使用栈来辅助遍历。在遍历的过程中对于每个节点我们检查它的左子节点是否存在如果存在继续检查左子节点是否为叶子节点即没有左右子节点。如果是叶子节点则将其值加到累加器 sum 中。对于非叶子节点我们将左子节点压入栈以便后续继续检查。然后无论是否有右子节点都将右子节点压入栈以确保我们遍历了所有可能的路径。 具体实现 class Solution { public:int sumOfLeftLeaves(TreeNode* root) {stackTreeNode* st;int sum 0;if (root nullptr) {return 0;}st.push(root);while (!st.empty()) {TreeNode* node st.top();st.pop();if (node-left) {if (!node-left-left !node-left-right) {sum node-left-val; // 如果左子节点是叶子节点将值加入 sum} else {st.push(node-left); // 如果左子节点不是叶子节点将左子节点压入栈}}if (node-right) {st.push(node-right); // 将右子节点压入栈无论是否为叶子节点}}return sum;} };算法分析 时间复杂度遍历整个二叉树的时间复杂度为 O(N)其中 N 是二叉树的节点数。在每个节点上我们进行常数时间的判断、加法和栈操作。空间复杂度使用了一个栈来辅助遍历栈的空间占用与二叉树的高度相关最坏情况下为 O(N)。因此总体空间复杂度为 O(N)。
http://www.w-s-a.com/news/159524/

相关文章:

  • 微信公众号怎么做微网站wordpress和dz
  • 西部数码网站管理助手 301福州搜索优化实力
  • 响应式网站介绍页面模板功能找不到
  • 公司网站如何seo自己做资讯网站
  • 天津网站建设软件开发招聘企业信用信息查询公示系统上海
  • 网站备案中做正品的网站
  • 网站建设0基础学起青海企业网站开发定制
  • 网站定制项目上海快速建站
  • 大型视频网站建设方案东莞企业网站建设开发
  • 西安php网站制作可以用AI做网站上的图吗
  • 网站开发工程师和前端企业网络推广公司
  • 泉州开发网站的公司有哪些电脑网页翻译
  • 河北省建设机械会网站首页刚做的网站怎么收录
  • 什么网站专门做自由行的framework7做网站
  • 网页设计与网站建设书籍包头住房与城乡建设局网站
  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件
  • 企业微站系统重庆高端网站建设价格
  • 有没有做衣服的网站吗网站自适应开发
  • 青海省制作网站专业专业定制网吧桌椅
  • 网站开发的项目17岁高清免费观看完整版
  • 手机网站建设多少钱一个门网站源码
  • 重庆 网站开发天津住房和城乡建设厅官方网站
  • 泰安高级网站建设推广厦门高端网站建设定制
  • jsp网站开发引用文献手机seo排名
  • 创建一家网站如何创设计网页的快捷网站
  • 1688代加工官方网站h5开发教程
  • 静态网站源码下载网站怎么显示备案号