leetcode-day15-求根到葉子節點數字之和[129]

思路:定義兩個隊列,一個用來放節點,一個用來放當前節點表示的數,遍歷節點,直到每個節點到達葉節點爲該條路徑的最後值,每到達一個葉節點, 就把值給到和的變量sum累加

算法思想: 隊列

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var sumNumbers = function(root) {
    if(root === null) return 0;
    let queue_node = [root];
    let queue_num = [root.val];
    let sum = 0;
    while(queue_node.length > 0){
        let node = queue_node.shift();
        let num = queue_num.shift();
        if(node.left === null && node.right === null){
            sum += num;
        } else {
            if(node.left){
                queue_node.push(node.left);
                queue_num.push(10*num + node.left.val);
                console.log(num, node.left.val);
            }
            if(node.right){
                queue_node.push(node.right);
                queue_num.push(10*num + node.right.val);
            }
        }
    }
    return sum;
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章