iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
自我挑戰組

刷題記錄與人生分享系列 第 22

DAY22 Sum Root to Leaf Numbers

  • 分享至 

  • xImage
  •  

題目:

https://leetcode.com/problems/sum-root-to-leaf-numbers/
一個包含0~9的二元樹,找到其根節點到葉數。

解題思路:

利用遞迴尋訪概念,探訪到每一個節點時乘以10加上現在節點數值,直到條件不符合時。

C版本:

int sumNumbers(struct TreeNode* root) {
    return helper(root, 0);
}

int helper(struct TreeNode* root, int sum)
{
    if(root == NULL)
        return 0;
    if(root -> left == NULL && root -> right == NULL)
        return sum*10 + root -> val;
    return helper(root -> left,sum*10+root -> val) + helper(root -> right,sum*10+root -> val);
}

Javascript版本:

var sumNumbers = function(root) {
    let total = 0, sum = 0;
    helper(root, sum);
    return total;
    
    function helper(node, sum) {
        if (!node) 
return;
        sum = sum*10 + node.val;
        
        if (!node.left && !node.right) {
            total += sum;
        }
        helper(node.left, sum);
        helper(node.right, sum);
    }
};

程式Github分享:

https://github.com/SIAOYUCHEN/leetcode

相似主題分享:

https://ithelp.ithome.com.tw/users/20100009/ironman/2500
https://ithelp.ithome.com.tw/users/20113393/ironman/2169
https://ithelp.ithome.com.tw/users/20107480/ironman/2435
https://ithelp.ithome.com.tw/users/20107195/ironman/2382
https://ithelp.ithome.com.tw/users/20119871/ironman/2210
https://ithelp.ithome.com.tw/users/20106426/ironman/2136

本日分享:

Every story needs an ending, but there is no ending which is called life.
每個故事都需要一個結局,但沒有結局的,叫做人生


上一篇
DAY21 Convert Sorted Array to Binary Search Tree
下一篇
DAY23 Linked List Cycle
系列文
刷題記錄與人生分享34
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言