二叉树——129. 求根节点到叶节点数字之和

二叉树——129. 求根节点到叶节点数字之和

题目:

思路:

DFS(深度搜索)+回溯

代码:

class Solution {
public:
    int sumNumbers(TreeNode* root) {
        if (!root) return 0;
        int res = 0;
        dfs(root, 0, res);
        return res;
    }

private:
    void dfs(TreeNode* root, int sub, int &res) {
        // sub存的是根到叶子节点的路径和
        // res记录所有路径的和
        if (!root) return;
        // 将root节点加上
        sub = sub * 10 + root->val;
        // 遍历到叶结点了,加到总和中
        if (root->left == root->right) {
            res += sub;
            return;
        }
        // 递归左右节点,这里有sub就相当于回溯了
        dfs(root->left, sub, res);
        dfs(root->right, sub, res);
    }

Rank:

Tips:

五一休息还是要整理一下树的知识点,还是有点乱,理清一下思路。

posted @ 2021-04-24 20:58  Originhhh  阅读(116)  评论(0)    收藏  举报