package com.interview.flag.f; import com.interview.leetcode.utils.TreeNode; /** * Created_By: stefanie * Date: 15-1-1 * Time: 下午4:30 */ public class F7_MaxSubtree { TreeNode maxRoot; int max; public TreeNode maxSubtree(TreeNode root){ maxRoot = null; max = Integer.MIN_VALUE; visit(root); return maxRoot; } public int visit(TreeNode node){ if(node == null) return 0; int left = visit(node.left); int right = visit(node.right); int sum = left + right + node.val; if(sum > max){ max = sum; maxRoot = node; } return sum; } }