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

做前端常用的网站及软件南戴河区网站建设哪家好

做前端常用的网站及软件,南戴河区网站建设哪家好,主机网站建设,惠州seo报价目录 257. 二叉树的所有路径题目描述题目分析cpp代码 112. 路径总和题目描述题目分析cpp代码 257. 二叉树的所有路径 题目描述 给你一个二叉树的根节点root #xff0c;按任意顺序#xff0c;返回所有从根节点到叶子节点的路径。 题目分析 其实从根节点往下走#xff0c… 目录 257. 二叉树的所有路径题目描述题目分析cpp代码 112. 路径总和题目描述题目分析cpp代码 257. 二叉树的所有路径 题目描述 给你一个二叉树的根节点root 按任意顺序返回所有从根节点到叶子节点的路径。 题目分析 其实从根节点往下走遍历的思路就如下图所示。我们先走到叶子节点这是一条路径然后再往上回溯如果回溯到的上层节点有右孩子那么就再按照右边的路径往下走另一条路径。 递归传入参数及返回值 void traversal(TreeNode* cur, vectorint path, vectorstring result)cur是当前节点path用来记录当前路径result是最终返回的结果。 递归终止条件 当我们遍历到叶子节点时就要把当前路径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;}单层递归逻辑 我们进行的是一个前序遍历但是需要注意的是当前节点的处理要在递归终止条件之前进行 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, vectorint path, vectorstring 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(); // 回溯}}vectorstring binaryTreePaths(TreeNode* root) {vectorint path;vectorstring 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, vectorint path, vectorint 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) {vectorint path;vectorint 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.hkea.cn/news/14488672/

相关文章:

  • 国内十大网站建设公司排名google app engine wordpress
  • 开发一个网站系统报价济南建设网站平台
  • 网站制作建设公司推荐常州网站公司怎么选
  • 做360手机网站优化免费发布推广的平台有哪些
  • 做花语的网站wordpress添加优酷视频播放器
  • 游戏型网站开发想做分销商有什么平台
  • 广东做网站公司南昌seo优化公司
  • 襄阳网站开发wordpress登陆界面
  • 做网站一定要云解析吗学广告设计需要什么学历
  • 做百度手机网站点击wordpress全景图
  • 企业形象通用网站价格低的形容词
  • 网站的优势和劣势网站建设营销推广工作
  • 一个网站怎么做镜像站榆林seo
  • 淄博专业网站设计wordpress 单页 主题
  • 清河做网站多少钱苏州 网站制作公司
  • 住房和城乡建设部官方网站可以做雷达图的网站
  • 公司网络维护主要做什么泉州百度seo公司
  • 被国家禁止访问的网站怎么打开网站开发制作公司
  • vs c 网站开发徐州网页公司
  • 网站备案进程查询专业的建设网站
  • 机械加工网站平台保定网站建设求职简历
  • 做网站的公司叫中什么网络架构图是什么
  • wap网站seo云南网站开发报价
  • 千万不能 网站iis默认网站打不开
  • 网站设计合同ipv6网络设计案例
  • 吴江城乡建设局网站如何制作网页网站
  • 网站建设用啥技术集群网站开发
  • 织梦高清电影网站模板百度网站推广价格
  • 照明做外贸的有那些网站芜湖做网站多少钱
  • 网站优化建设详情页设计制作