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

做外贸没有网站需要十八大禁用黄app入口

做外贸没有网站需要,十八大禁用黄app入口,当地建设局网站,桐城市住房城乡建设局网站目录 257. 二叉树的所有路径题目描述题目分析cpp代码 112. 路径总和题目描述题目分析cpp代码 257. 二叉树的所有路径 题目描述 给你一个二叉树的根节点root ,按任意顺序,返回所有从根节点到叶子节点的路径。 题目分析 其实从根节点往下走&#xff0c…

目录

  • 257. 二叉树的所有路径
    • 题目描述
    • 题目分析
    • cpp代码
  • 112. 路径总和
    • 题目描述
    • 题目分析
    • cpp代码

257. 二叉树的所有路径

题目描述

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

题目分析

其实从根节点往下走,遍历的思路就如下图所示。我们先走到叶子节点(这是一条路径),然后再往上回溯,如果回溯到的上层节点有右孩子,那么就再按照右边的路径往下走(另一条路径)。
在这里插入图片描述

  1. 递归传入参数及返回值
void traversal(TreeNode* cur, vector<int>& path, vector<string>& result)

cur是当前节点,path用来记录当前路径,result是最终返回的结果。

  1. 递归终止条件
    当我们遍历到叶子节点时,就要把当前路径path加入result了。
if(cur->left == NULL && cur->right == NULL) {// 如果当前节点是叶子节点,也就是左右孩子都为空// 也就是说已经遍历了一条根节点到叶子节点的路径// 我们要把这条路径放进result中string sPath;for(int i = 0; i < path.size() - 1; i++){sPath += to_string(path[i]);sPath += "->";}sPath += to_string(path[path.size() - 1]);result.push_back(sPath);return;}
  1. 单层递归逻辑
    我们进行的是一个前序遍历,但是需要注意的是当前节点的处理要在递归终止条件之前进行:
path.push_back(cur->val);   // 先将当前节点放进当前path中,再判断结束条件

这是因为所有节点包括叶子节点都要加入path,如果先判断终止,再处理当前节点则会漏掉叶子节点。

在进行左右孩子的遍历时,我们要注意判断节点是否为空:

if(cur->left) {traversal(cur->left, path, result);path.pop_back();    // 回溯}if(cur->right) {traversal(cur->right, path, result);path.pop_back();    // 回溯}

cpp代码

/*** 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:void traversal(TreeNode* cur, vector<int>& path, vector<string>& result){path.push_back(cur->val);   // 先将当前节点放进当前path中,再判断结束条件if(cur->left == NULL && cur->right == NULL) {// 如果当前节点是叶子节点,也就是左右孩子都为空// 也就是说已经遍历了一条根节点到叶子节点的路径// 我们要把这条路径放进result中string sPath;for(int i = 0; i < path.size() - 1; i++){sPath += to_string(path[i]);sPath += "->";}sPath += to_string(path[path.size() - 1]);result.push_back(sPath);return;}if(cur->left) {traversal(cur->left, path, result);path.pop_back();    // 回溯}if(cur->right) {traversal(cur->right, path, result);path.pop_back();    // 回溯}}vector<string> binaryTreePaths(TreeNode* root) {vector<int> path;vector<string> result;if(root == NULL) return result;traversal(root, path, result);return result;}
};

112. 路径总和

题目描述

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

题目分析

其实这题跟上题是一样的,只不过这里多了一个targetSum的判断。

cpp代码

/*** 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:void traversal(TreeNode* cur, vector<int>& path, vector<int>& sum){path.push_back(cur->val);if(cur->left == NULL && cur->right == NULL) {cout << "当前路径: ";for(int p : path) {cout << p << ' ';}cout << endl;sum.push_back(accumulate(path.begin(), path.end(), 0));cout << "当前路径总和: " << accumulate(path.begin(), path.end(), 0) << endl;return;}if(cur->left) {traversal(cur->left, path, sum);path.pop_back();}if(cur->right) {traversal(cur->right, path, sum);path.pop_back();}}bool hasPathSum(TreeNode* root, int targetSum) {vector<int> path;vector<int> sum;if(root == NULL) return false;traversal(root, path, sum);if(find(sum.begin(), sum.end(), targetSum) == sum.end()){return false;}else return true;}
};
http://www.ds6.com.cn/news/37208.html

相关文章:

  • avada 做的网站惠州关键词排名提升
  • 没网站做cpa广告联盟ttkefu在线客服系统官网
  • 企业营销网站建设规划学电商出来一般干什么工作
  • 台州市城乡建设局网站广州企业网站seo
  • asp网站安全网络营销解释
  • 网站需求定制表单网络营销的营销方式
  • 自己做网站需要什么软件北京学电脑的培训机构
  • 吉林大学学风建设专题网站深圳seo优化公司排名
  • 做围棋死活题的网站图片外链在线生成网址
  • 网站的c4d动画是怎么做的网站设计与制作教程
  • 易语言做网站客户端网页制作免费网站制作
  • 哪个网站可以做担保交易平台适合发软文的平台
  • 玩具网站建设策划书外包公司有哪些
  • 财务软件做账流程新手必看广州网站优化公司如何
  • b2c网站优化营销软文模板
  • 网网站开发竞价推广账户竞价托管公司
  • 宁波建网站如何收费蜘蛛seo超级外链工具
  • 苏州市住房城乡建设局网站360外链
  • 建设旅游门户网站百度手机怎么刷排名多少钱
  • 网页微信版官网登录怎么弄到桌面网店seo关键词
  • 上海网站建设 app开发南昌seo营销
  • 西安网站设计方案无代码网站开发平台
  • 网站建设实训要求网上怎么注册公司免费的
  • dede无法一键更新网站网站推广优化的原因
  • 泉州制作网页公司网站关键词优化的价格
  • 网站价值评估怎么做郑州网站推广电话
  • 网站建设公司怎么赚钱百度竞价一个月5000够吗
  • 网站投票功能百度推广托管
  • 南通小程序制作seo工作
  • 手机 网站服务器谷歌seo顾问