113. 路径总和 II

✅做题思路or感想:

  • 也是遍历一遍二叉树,判断路径总和和是否是叶子节点,要注意的是这里还需要加一个vector来记录路径

  • class Solution {
    public:
        vector<vector<int>>result;
        void dfs(TreeNode* cur, vector<int>vec, int sum) {
            //判断条件
            if (sum == 0 && !cur->left && !cur->right) {
                result.push_back(vec);
                return;
            } else {
                if (cur->left) {
                    //这里要有一个vector来记录路径
                    vec.push_back(cur->left->val);
                    dfs(cur->left, vec, sum - cur->left->val);
                    //回溯!
                    vec.pop_back();
                }
                if (cur->right) {
                    vec.push_back(cur->right->val);
                    dfs(cur->right, vec, sum - cur->right->val);
                    vec.pop_back();
                }
            }
        }
        vector<vector<int>> pathSum(TreeNode* root, int targetSum) {
            if (root == nullptr)return result;
            dfs(root, vector<int>{root->val}, targetSum - root->val);
            return result;
        }
    };
    
posted @   北原春希  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示