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

销售渠道及方式seo公司网站建设

销售渠道及方式,seo公司网站建设,平面设计网课哪个机构好,网站开发 定制[数据结构算法] 给一棵树和一个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.yayakq.cn/news/108811/

相关文章:

  • 和魔鬼做交易的网站免费php企业网站管理系统
  • 广州网站制作有哪些重庆大山建设有限公司网站
  • 阿里云域名怎样做网站杭州做网站哪家便宜
  • 优质的菏泽网站建设wordpress修改图片大小
  • 烟台网站建设企汇互联见效付款邯郸本地网站
  • 手机医疗网站网站规划教学设计
  • 聊城做手机网站建设wordpress消耗性能吗
  • 英德市住房城乡建设局网站中国十大品牌网
  • 网站开发与管理论文滨海做网站的公司
  • vue适合什么样的网站开发苏州做网站公
  • 深圳网站建设设凡科网站产品导航怎么做
  • 怎么自己弄网站免费企业的vi设计系统
  • 局网站建设情况成都seo网站建设
  • 外贸建站与推广如何做中国建筑协会证书查询
  • 做外贸网站怎么访问外国网站中国建筑股吧
  • 椒江哪里可以做公司网站广州有什么好玩的山
  • 网站都有服务器吗wordpress源码系统下载地址
  • 记事本做网站怎么不行啦做推广app赚钱的项目
  • 查询网138网站域名石家庄手机建网站
  • Pc端网站是什么意思百度知道提问
  • 做虾苗网站有哪些流程网站建设功能seo
  • 怎么做html5网站wordpress主题制作 工具
  • 那些企业需要做网站php做网站常见实例
  • 长沙网站制作作途牛旅游网
  • 高端网站建设怎么做易乐自助建站
  • 现在做网站建设的公司多么昆山科技网站建设
  • 行业网站有建设价值吗h5移动端网站模板下载
  • 网站开发学生鉴定表wordpress繁简体
  • 网站开发 数据库wordpress文章图片链接
  • 企业网站首页效果图虚拟主机怎么上传网站