Path Sum
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Path Sum相关的知识,希望对你有一定的参考价值。
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.
For example:
Given the below binary tree and sum = 22
,
5 / 4 8 / / 11 13 4 / \ 7 2 1
return true, as there exist a root-to-leaf path 5->4->11->2
which sum is 22.
Subscribe to see which companies asked this question
recursion版本
bool hasPathSum(TreeNode* root, int sum) { if (!root) return false; if ((root->val == sum) && (root->left == nullptr && root->right == nullptr)) return true; return hasPathSum(root->left, sum - root->left->val) || hasPathSum(root->right, sum - root->right->val); }
non-recursion版本
bool hasPathSum(TreeNode* root, int sum) { if (root == nullptr) return false; stack<TreeNode*> sta; sta.push(root); sum -= root->val; TreeNode* lastRoot = root; while (!sta.empty()) { root = sta.top(); if (lastRoot != root->right) { if (lastRoot != root->left) { if (root->left != nullptr) { sta.push(root->left); sum -= root->left->val; continue; } } if (root->right != nullptr) { sta.push(root->right); sum -= root->right->val; continue; } else if(root->left == nullptr && sum == 0) return true; } lastRoot = root; sta.pop(); sum += root->val; } return false; }
以上是关于Path Sum的主要内容,如果未能解决你的问题,请参考以下文章
leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段
append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途