classSolution{int ans;publicintlongestUnivaluePath(TreeNode root){
ans =0;if(root ==null)return0;dfs(root);return ans;}publicintdfs(TreeNode node){if(node ==null)return0;int left =dfs(node.left);int right =dfs(node.right);if(node.left !=null&& node.left.val == node.val)
left = left +1;else
left =0;if(node.right !=null&& node.right.val == node.val)
right = right +1;else
right =0;
ans =Math.max(ans, left+right);returnMath.max(left, right);}}
LeetCode 124. 二叉树中的最大路径和
classSolution{int ans;publicintmaxPathSum(TreeNode root){
ans =Integer.MIN_VALUE;dfs(root);return ans;}publicintdfs(TreeNode node){if(node ==null)return0;int left =Math.max(dfs(node.left),0);int right =Math.max(dfs(node.right),0);
ans =Math.max(ans, node.val+left+right);return node.val +Math.max(left, right);}}