Zheaoli / do-something-right

MIT License
37 stars 3 forks source link

2022-05-30 #253

Open Zheaoli opened 2 years ago

Zheaoli commented 2 years ago

2022-05-30

SaraadKun commented 2 years ago

1022. 从根到叶的二进制数之和

image

class Solution {

    int ans = 0;

    public int sumRootToLeaf(TreeNode root) {
        dfs(root, 0);
        return ans;
    }

    private void dfs(TreeNode root, int parent) {
        if (root == null) {
            return;
        }
        parent = (parent << 1 ) + root.val;
        if (root.left == null && root.right == null) {
            ans += parent;
            return;
        }
        dfs(root.left, parent);
        dfs(root.right, parent);
    }
}

WeChat: Saraad

dreamhunter2333 commented 2 years ago
package main

/*
 * @lc app=leetcode.cn id=1022 lang=golang
 *
 * [1022] 从根到叶的二进制数之和
 */
type TreeNode struct {
    Val   int
    Left  *TreeNode
    Right *TreeNode
}

// @lc code=start
func sumRootToLeaf(root *TreeNode) int {
    return dfs(root, 0, 0)
}

func dfs(node *TreeNode, num int, res int) int {
    if node == nil {
        return res
    }
    num = num*2 + node.Val
    if node.Left == nil && node.Right == nil {
        res += num
        return res
    }
    res = dfs(node.Left, num, res)
    res = dfs(node.Right, num, res)
    return res
}

// @lc code=end

微信id: 而我撑伞 来自 vscode 插件