leetcode 129. 求根到叶子节点数字之和

博客围绕 LeetCode 第 129 题,即求根到叶子节点数字之和展开,虽未给出具体内容,但可知与算法解题相关,属于信息技术领域的算法问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

'''
leetcode 129. 求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,
每条从根到叶子节点的路径都代表一个数字。
例如,从根到叶子节点路径 1->2->3 代表数字 123。
计算从根到叶子节点生成的所有数字之和。
说明: 叶子节点是指没有子节点的节点。
'''
# Definition for a binary tree node.
class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution(object):
    def sumNumbers(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        if root is None:
            return 0
        if root.left is None and root.right is None:
            return root.val
        output=0
        # 对于二叉树的每个节点,都对应着从根节点到当前节点的整数
        # 对二叉树进行层序遍历
        queue=[]
        value=[]  # 保存每个节点所对应的int类型数值
        queue.insert(0,root)
        value.insert(0,root.val)
        while(queue):
            temp_node=queue.pop(-1)
            temp_val=value.pop(-1)
            if temp_node.left is not None:
                queue.insert(0,temp_node.left)
                value.insert(0,temp_val*10+temp_node.left.val)
            if temp_node.right is not None:
                queue.insert(0,temp_node.right)
                value.insert(0,temp_val*10+temp_node.right.val)
            if temp_node.right is None and temp_node.left is None:
                output+=temp_val
        return output

if __name__=="__main__":
    root=TreeNode(1)
    root.left=TreeNode(2)
    root.right=TreeNode(3)
    print(Solution().sumNumbers(root))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值