dfs

class Solution:
    def sumRootToLeaf(self, root: TreeNode) -> int:
        stack=[(root,0)]
        ans=[]
        bi_str=[]
        while stack:
            node,level=stack.pop()
            s_len=len(bi_str)
            if s_len-1<level:
                bi_str.append(str(node.val))
            else:
                bi_str[level]=str(node.val)
                del bi_str[level+1:]
            if (not node.left) and (not node.right):
                ans.append(int(''.join(bi_str),2))
            if node.right:
                stack.append((node.right,level+1))
            if node.left:
                stack.append((node.left,level+1))
        return sum(ans)

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄