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

河南企业网站制作网页设计与制作模板

河南企业网站制作,网页设计与制作模板,营销型网站建设模板下载,网站运行团队建设[数据结构算法] 给一棵树和一个sum,判断是否存在从root到叶子结点的path之和等于sum? 可以使用两种方法求解 递归 CheckTreeSumRecursive 问题转换为递归判断左右子树是否满足路径和等于sum减去当前节点的值。 迭代 CheckTreeSumNonRecursive 使用两个…

[数据结构+算法] 给一棵树和一个sum,判断是否存在从root到叶子结点的path之和等于sum?

可以使用两种方法求解

  • 递归 CheckTreeSumRecursive

问题转换为递归判断左右子树是否满足路径和等于sum减去当前节点的值。

  • 迭代 CheckTreeSumNonRecursive

使用两个栈数据结构,一个存储节点,另一个存储对应的节点到root节点到sum,迭代遍历到叶子节点时进行判断。

详细代码如下:

#include <iostream>
#include <stack>using namespace std;struct TreeNode {TreeNode(int val_) : val(val_), left(nullptr), right(nullptr) {}int val;TreeNode *left;TreeNode *right;
};bool CheckTreeSumRecursive(TreeNode *head, int targetSum) {if (head == nullptr) {return false;}if (head->left == nullptr && head->right == nullptr && head->val == targetSum) {return true;}return CheckTreeSumRecursive(head->left, targetSum - head->val) || CheckTreeSumRecursive(head->right, targetSum - head->val);
}bool CheckTreeSumNonRecursive(TreeNode *head, int targetSum) {if (head == nullptr) {return false;}stack<TreeNode*> nodes;nodes.push(head);stack<int> sums;sums.push(head->val);while (!nodes.empty()) {TreeNode *node = nodes.top();nodes.pop();int sum = sums.top();sums.pop();if (node->left == nullptr && node->right == nullptr && sum == targetSum) {return true;}if (node->left != nullptr) {nodes.push(node->left);sums.push(sum + node->val);}if (node->right != nullptr) {nodes.push(node->right);sums.push(sum + node->val);}}return false;
}// 打印结果的辅助函数
void printResult(bool result) {cout << (result ? "true" : "false") << endl;
}int main() {// 创建示例二叉树TreeNode* root = new TreeNode(5);root->left = new TreeNode(4);root->right = new TreeNode(8);root->left->left = new TreeNode(11);root->left->left->left = new TreeNode(7);root->left->left->right = new TreeNode(2);root->right->left = new TreeNode(13);root->right->right = new TreeNode(4);root->right->right->right = new TreeNode(1);cout << "Test Recursive Solution...\n";cout << "Example 1: ";printResult(CheckTreeSumRecursive(root, 22)); // 输出 truecout << "Example 2: ";printResult(CheckTreeSumRecursive(root, 5)); // 输出 falsecout << "Example 3: ";printResult(CheckTreeSumRecursive(nullptr, 0)); // 输出 falsecout << "Test Recursive Solution...\n";cout << "Example 1: ";printResult(CheckTreeSumNonRecursive(root, 22)); // 输出 truecout << "Example 2: ";printResult(CheckTreeSumNonRecursive(root, 5)); // 输出 falsecout << "Example 3: ";printResult(CheckTreeSumNonRecursive(nullptr, 0)); // 输出 falsereturn 0;
}
http://www.hengruixuexiao.com/news/20611.html

相关文章:

  • 成都网站建设全平台南昌百度推广公司
  • 学校网站建设意义有哪些方面武汉最新今天的消息
  • 网络游戏代理平台seo网站诊断价格
  • 海南省建设培训与执业资格注册中心网站拼多多seo搜索优化
  • 免费行情软网站最近发生的热点新闻事件
  • 网站集约化建设的好处体验式营销经典案例
  • 织梦网站栏目如何做下拉网络营销做得好的酒店
  • 自己做的影视会员网站违法么八零云自助建站免费建站平台
  • 前端做网站框架软件定制开发公司
  • 做网站的公司挣钱吗长沙网站seo推广
  • 线上编程哪家比较好seo和sem哪个工资高
  • 南昌网站建设索王道下拉地推项目发布平台
  • 凯里网站设计公司哪家好项目外包平台
  • 网站开发外贸2345王牌浏览器
  • 东莞企业网站多少钱网站推广去哪家比较好
  • 酒店网站建设公司开封seo推广
  • b站免费版2023最新版本线上推广策划方案
  • 江阴外贸网站制作windows优化大师软件介绍
  • 婚纱网站制作网站软件开发
  • 南阳网站建设制作价格哪些网站是营销型网站
  • 怎么做视频网站赚钱吗成都网络推广中联无限
  • 宁波网站建设多少钱一个百度收录查询网址
  • 做外贸网站效果图广东东莞大益队
  • 替人做赌彩网站被判刑企业推广宣传方案
  • php网站用到的知识方法seo
  • 做侵权网站用哪里的服务器稳信阳搜索引擎优化
  • wordpress前端接口搜索引擎优化培训免费咨询
  • 网站开发 网页上传 网页制作上海平台推广的公司
  • 网站设计收费标准小程序推广平台
  • 文昌品牌网站建设费用营销网站建设