129:Sum Root to Leaf Numbers【樹】【DFS】

題目鏈接:click~

/*題意:給出一顆二叉樹,從根結點到葉子結點路徑上所有結點的值可以組成一個數
        求這些數的和
*/

/**
 *思路:DFS遍歷整棵樹,用num記錄以當前結點爲結尾的可以組成的數
 *      當遍歷到葉子結點時,累加到sum
 *
 */

class Solution {
public:
    void GetSum(TreeNode *root, int num, int &sum) {
        if(root->left == NULL && root->right == NULL) { //葉子結點
            sum += num;
            return;
        }
        if(root->left != NULL)
            GetSum(root->left, num*10 + root->left->val, sum);
        if(root->right != NULL)
            GetSum(root->right, num*10 + root->right->val, sum);

    }
    int sumNumbers(TreeNode *root) {
        if(root == NULL) return 0;
        int sum = 0;
        GetSum(root, root->val, sum);
        return sum;
    }
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章