Java教程

112. 路径总和

本文主要是介绍112. 路径总和,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

✅做题思路or感想:

  • 也是遍历一遍二叉树的路径,每次遍历一个节点就把targeSum减去对应的节点值,如果最后是叶子节点并且targeSum为0,则符合条件

    class Solution {
    public:
        bool flag = false;
        void dfs(TreeNode* cur, int sum, int targetSum) {
            //判断条件
            if (sum == targetSum && !cur->left && !cur->right) {
                flag = true;
                return;
            } else {
                //分别向左右子树遍历
                if (cur->left) dfs(cur->left, sum + cur->left->val, targetSum);
                if (cur->right) dfs(cur->right, sum + cur->right->val, targetSum);
            }
        }
        bool hasPathSum(TreeNode* root, int targetSum) {
            if (root == nullptr)return false;
            dfs(root, root->val, targetSum);
            if (flag)return true;
            else return false;
        }
    };
    
这篇关于112. 路径总和的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!