码迷,mamicode.com
首页 > 其他好文 > 详细

Path Sum

时间:2015-04-10 11:02:07      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

给定一个二叉树和一个整数,求是否存在一条从根节点到叶节点的路径,路径上所有点的和等于给定的整数

思路:用广度优先搜索,将当前节点的值传到下一层节点即可。即将每一个节点的值更新为从根节点到该点的值的和

  1. class Solution {
  2. public:
  3. bool hasPathSum(TreeNode *root, int sum) {
  4. if (!root)
  5. return false;
  6. queue<TreeNode*> qNode;
  7. qNode.push(root);
  8. TreeNode* tmpNode = NULL;
  9. while (!qNode.empty())
  10. {
  11. int qSize = qNode.size();
  12. for (size_t i = 0; i < qSize; i++)
  13. {
  14. tmpNode = qNode.front();
  15. if (tmpNode->val == sum && !tmpNode->left && !tmpNode->right)
  16. {
  17. return true;
  18. }
  19. else
  20. {
  21. if (tmpNode->left)
  22. {
  23. tmpNode->left->val += tmpNode->val;
  24. qNode.push(tmpNode->left);
  25. }
  26. if (tmpNode->right)
  27. {
  28. tmpNode->right->val += tmpNode->val;
  29. qNode.push(tmpNode->right);
  30. }
  31. }
  32. qNode.pop();
  33. }
  34. }
  35. return false;
  36. }
  37. };




Path Sum

标签:

原文地址:http://www.cnblogs.com/flyjameschen/p/d3efa7b9fe192e34fd8068884e95cbdb.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!