中等
技术面试0 次浏览给定一个二叉树,计算其所有节点的值的和。
算法工程师
二叉树算法
答题要点
可以使用递归的方法来计算二叉树所有节点的值的和。递归的基本思路是:对于一个二叉树,其所有节点的值的和等于根节点的值加上左子树所有节点的值的和加上右子树所有节点的值的和。以下是Python代码实现: python class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def tree_sum(root): if root is None: return 0 return root.val + tree_sum(root.left) + tree_sum(root.right) 在这段代码中,首先判断根节点是否为空,如果为空则返回0。否则,返回根节点的值加上左子树的节点值之和加上右子树的节点值之和。递归地调用`tree_sum`函数来计算左子树和右子树的节点值之和。这种方法的时间复杂度是O(n),其中n是二叉树的节点数,因为需要遍历每个节点一次。