Path Sum
2015-04-10 09:52 笨笨的老兔子 阅读(123) 评论(0) 收藏 举报给定一个二叉树和一个整数,求是否存在一条从根节点到叶节点的路径,路径上所有点的和等于给定的整数
思路:用广度优先搜索,将当前节点的值传到下一层节点即可。即将每一个节点的值更新为从根节点到该点的值的和
class Solution {public:bool hasPathSum(TreeNode *root, int sum) {if (!root)return false;queue<TreeNode*> qNode;qNode.push(root);TreeNode* tmpNode = NULL;while (!qNode.empty()){int qSize = qNode.size();for (size_t i = 0; i < qSize; i++){tmpNode = qNode.front();if (tmpNode->val == sum && !tmpNode->left && !tmpNode->right){return true;}else{if (tmpNode->left){tmpNode->left->val += tmpNode->val;qNode.push(tmpNode->left);}if (tmpNode->right){tmpNode->right->val += tmpNode->val;qNode.push(tmpNode->right);}}qNode.pop();}}return false;}};
浙公网安备 33010602011771号