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

建设一个网站需要如需郑州网站建设

建设一个网站需要,如需郑州网站建设,网站面向哪些地区做优化容易,济南建筑工程网257. 二叉树的所有路径 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [1,2,3,null,5] 输出:["1->2->5",&…

257. 二叉树的所有路径

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。

叶子节点 是指没有子节点的节点。

示例 1:

输入:root = [1,2,3,null,5]
输出:["1->2->5","1->3"]

示例 2:

输入:root = [1]
输出:["1"]

思路:递归,结束条件是一个结点没有左孩子和右孩子。题目提示中写到至少会有一个根节点,那么不用判断树空的情况。

代码实现:

class Solution {void generate(TreeNode *node, string path, vector<string> &result) {path += to_string(node->val);if(node->left && !node->left->left && !node->left->right) {result.push_back(path);return;}if(node->left) generate(node->left, path + "->", result);if(node->right) generate(node->right, path + "->", result);}    vector<string> binaryTreePaths(TreeNode* root) {string path = "";vector<string> result;//if(!root) return result;generate(root, path, result);return result;}
};

404. 左叶子之和

给定二叉树的根节点 root ,返回所有左叶子之和。

示例 1:

输入: root = [3,9,20,null,null,15,7] 
输出: 24 
解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24

示例 2:

输入: root = [1]
输出: 0

思路:递归,迭代都可以。迭代的话,前中后续都可行,下面的代码是后序遍历,注意判断左叶子结点即可。递归的判定条件也是相同的。

代码实现1:迭代

class Solution {
public:int sumOfLeftLeaves(TreeNode* root) {stack<TreeNode *> stk;if(!root) return 0;stk.push(root);int ret = 0;TreeNode *node;while(!stk.empty()) {node = stk.top();stk.pop();if(node->left && !node->left->left && !node->left->right) ret += node->left->val;if(node->left) stk.push(node->left);if(node->right) stk.push(node->right);}return ret;}
};

代码实现2:递归

class Solution {
public:int sumOfLeftLeaves(TreeNode* root) {if(!root) return 0;int leftValue = 0;if(root->left && !root->left->left && !root->left->right) {leftValue = root->left->val;}return leftValue + sumOfLeftLeaves(root->left) + sumOfLeftLeaves(root->right);}
};

112. 路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。

叶子节点 是指没有子节点的节点。

示例 1:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
输出:true
解释:等于目标和的根节点到叶节点路径如上图所示。

示例 2:

输入:root = [1,2,3], targetSum = 5
输出:false
解释:树中存在两条根节点到叶子节点的路径:
(1 --> 2): 和为 3
(1 --> 3): 和为 4
不存在 sum = 5 的根节点到叶子节点的路径。

示例 3:

输入:root = [], targetSum = 0
输出:false
解释:由于树是空的,所以不存在根节点到叶子节点的路径。

思路:递归+回溯,当得到的结果不满足时,需要往回退一步,寻找新的可能满足需求的路径。

代码实现:

class Solution {
public:bool calculate(TreeNode *node, int count) {if(!node->left && !node->right && count == 0) return true;if(!node->left && !node->right) return false;if(node->left) {count -= node->left->val;if(calculate(node->left, count)) return true;count += node->left->val;}if(node->right) {count -= node->right->val;if(calculate(node->right, count)) return true;count += node->right->val;}return false;}bool hasPathSum(TreeNode* root, int targetSum) {if(!root) return false;return calculate(root, targetSum - root->val);}
};
http://www.yayakq.cn/news/855131/

相关文章:

  • 官方网站查询高考分数传统生意转型做那个网站好
  • 自做网站打开速度慢聊城网站建设找谁
  • 深圳网站建设一般多少钱重庆公司网站制作
  • 网站开发 质保金中国建筑建设通的网站
  • 张店网站制作设计公司中文网页设计案例欣赏
  • 如何制作网站教程视频讲解国家再就业免费培训网
  • 柳州网站制作推荐深圳网站制作公司人才招聘
  • 网站规划和建设进度域名访问本地wordpress
  • 建设网站我们重中之重-用户体验三水营销网站开发
  • 哈尔滨 房产网站建设网站开发费用一般是多少
  • 一个网站可以绑定几个域名为什么网站建设图片显示不出来
  • 人工智能设计网站竞价推广的方案
  • 品牌产品网站怎么做设计师网址推荐
  • 个人门户网站建设流程wordpress配置cdn缓存规则
  • 各大网站收录功能网站首页模板
  • 具有品牌的微网站建设网络游戏推广员
  • 请人做阿里巴巴网站需要注意保定市网站设计
  • 网站域名备案谁来做抖音代运营一般几个周期
  • 一般网站建设公司有多少客户啊国内搜索引擎优化的公司
  • jquery网站右侧悬浮返回顶部带双二维码鼠标经过显示网站开发毕业设计收获与体会
  • 遵化市城乡建设局网站wordpress 微服务器配置
  • 成都的网站做网站要多
  • 设计网站私单价格flash网站开发教程
  • 品牌宣传型企业网站wordpress怎么设置页面导航
  • 广州网站优化电话网页设计制作费用多少
  • 西安SEO网站排名重庆沙坪坝有哪些大学
  • 怎么用WordPress快速建站自己怎样成为电商
  • 易语言网站开发网络热词2023
  • 手机页面网站开发例子重庆做商城网站
  • 中国铁路建设投资公司官方网站做网站怎么插音乐