📅  最后修改于: 2023-12-03 14:51:32.839000             🧑  作者: Mango
给定一棵二叉树,找到其最大的偶数和节点。偶数和是指二叉树中所有偶数值节点的和。
可以通过深度优先搜索(DFS)来解决该问题。具体步骤如下:
max_sum
为0。max_sum
中。max_sum
。代码如下:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def __init__(self):
self.max_sum = 0
def dfs(self, node: TreeNode) -> int:
if not node:
return 0
if node.val % 2 == 0:
self.max_sum += node.val
left = self.dfs(node.left)
right = self.dfs(node.right)
return node.val + left + right
def maxEvenSum(self, root: TreeNode) -> int:
self.dfs(root)
return self.max_sum