题解 | #二叉树中和为某一值的路径(一)#

二叉树中和为某一值的路径(一)

https://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c

//利用栈进行dfs深度优先搜索,采用pair嵌套
/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

#include <utility>
class Solution {
public:
    /**
     * 
     * @param root TreeNode类 
     * @param sum int整型 
     * @return bool布尔型
     */
    bool hasPathSum(TreeNode* root, int sum) {
        // write code here
        if (root==NULL) {
            return false;
        }
        stack<pair<TreeNode*, int>> s;
        s.push({root,sum-root->val});
        while (!s.empty()) {
            auto temp=s.top();
            s.pop();
            if (temp.first->left==NULL&&temp.first->right==NULL&&temp.second==0) {
                return true;
            }
            if (temp.first->left) {
                s.push({temp.first->left,temp.second-temp.first->left->val});
            }
            if (temp.first->right) {
                s.push({temp.first->right,temp.second-temp.first->right->val});
            }

        }
        return false;

    }
};

全部评论

相关推荐

03-31 14:46
已编辑
门头沟学院 Web前端
励志成为双港第一ja...:这其实很正常,离的太远了,他认为你不会来,就为了混个面试,而且成本很高,实习生都优先选本地高校。吃了地域的亏,所有很多时候地域可能比院校层次更重要。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务