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

青岛建设监理协会网站建站公司哪家好都选万维科技

青岛建设监理协会网站,建站公司哪家好都选万维科技,做网站上时需要3d预览功能,淘宝代运营服务[数据结构算法] 给一棵树和一个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.15wanjia.com/news/170414.html

相关文章:

  • 北京首华建设经营有限公司网站科讯网站首页公告模板
  • 中国建设信用卡网站跨境电商免费开店的有哪些
  • 重庆网站模板建站百度app优化
  • 哪个网站可以做行程wordpress+爱情模板下载
  • 湖南城市建设技术学院官方网站wordpress怎么改登陆
  • 福建大佳建设工程有限公司网站云南能投基础设施投资开发建设有限公司网站
  • 全网模板建站系统wordpress金币插件
  • 网站服务器买了后怎么做网址导航系统
  • 网站制作1000元住房与城乡建设局网站
  • 婚庆网站html模板微官网是小程序吗
  • 网站建设策北京公司网站开发
  • 哪个视频网站做直播销售山东旗舰建设集团网站
  • 企业为什么要做网站运营免费个人网站建设大全
  • 网站建设 如何友情链接wordpress 登陆后返回当前页面
  • 免费建手机网站后台快速收录网站
  • 郑州高新区做网站开发的公司效果图制作软件免费
  • 无需登录网页小游戏网站百度关键字
  • 网站怎么做配置文件夹电商关键词查询工具
  • 做电商怎么建网站莱州网站建设公司
  • 怎样建设微网站什么建站公司好
  • onethink做移动网站网站开发类书籍
  • 做ppt的素材网站沈阳网站改版
  • 公司网站制作招聘win7 iis 新建网站
  • 广东万高建设网站最大的免费网站建设
  • 网站建设和网站设计公司在哪里张家界搜索引擎优化
  • 滨州j建设局网站投诉电话深圳制作宣传片公司
  • 域名除了做网站还能做什么深圳被点名批评
  • 网站建设 上本地搭建网站
  • zencart网站地图插件天水网站制作
  • vs215开发python网站开发wordpress qqoq主题