Leetcode Binary Tree Maximum Path Sum
来源:互联网 发布:微商和淘宝哪个挣钱 编辑:程序博客网 时间:2024/06/02 02:16
Given a binary tree, find the maximum path sum.
For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The path does not need to go through the root.
For example:
Given the below binary tree,
1 / \ 2 3
Return 6
.
Difficulty: Hard
Solution: DFS
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { int ans = Integer.MIN_VALUE; public int helper(TreeNode root){ ans = Math.max(ans, root.val); if(root.left == null && root.right == null){ return root.val; } else if(root.left == null){ int right = helper(root.right); ans = Math.max(ans, right); if(right < 0) return root.val; return right + root.val; } else if(root.right == null){ int left = helper(root.left); ans = Math.max(ans, left); if(left < 0) return root.val; return left + root.val; } else{ int right = helper(root.right); int left = helper(root.left); ans = Math.max(ans, right); ans = Math.max(ans, left); if(right < 0 && left < 0){ return root.val; } else if(right < 0){ ans = Math.max(ans, left + root.val); return left + root.val; } else if(left < 0){ ans = Math.max(ans, right + root.val); return right + root.val; } else{ ans = Math.max(ans, right + root.val + left); return Math.max(root.val + left, root.val + right); } } } public int maxPathSum(TreeNode root) { if(root == null) return 0; return Math.max(helper(root), ans); }}
0 0
- *****(leetcode) Binary Tree Maximum Path Sum (tree)
- LeetCode Binary Tree Maximum Path Sum
- [Leetcode] Binary Tree Maximum Path Sum
- [leetcode] Binary Tree Maximum Path Sum
- LeetCode Binary Tree Maximum Path Sum
- [LeetCode] Binary Tree Maximum Path Sum
- leetcode Binary Tree Maximum Path Sum
- 【leetcode】Binary Tree Maximum Path Sum
- LeetCode - Binary Tree Maximum Path Sum
- [LeetCode]Binary Tree Maximum Path Sum
- [Leetcode]Binary Tree Maximum Path Sum
- Leetcode: Binary Tree Maximum Path Sum
- LeetCode-Binary Tree Maximum Path Sum
- [leetcode] Binary Tree Maximum Path Sum
- LeetCode - Binary Tree Maximum Path Sum
- LeetCode 124: Binary Tree Maximum Path Sum
- 【Leetcode】Binary Tree Maximum Path Sum
- LeetCode | Binary Tree Maximum Path Sum
- springMVC基本使用
- HTTP 协议中GET和POST到底有哪些区别
- hihoCoder:Dice Possibility
- Leetcode Maximal Rectangle
- Ajax, SPA, Client-Side VS Server-Side code difference
- Leetcode Binary Tree Maximum Path Sum
- javaweb简单二维码
- Leetcode Odd Even Linked List
- Leetcode Reorder List
- Leetcode Palindrome Number
- 大笨鹰
- Leetcode Invert Binary Tree
- Leetcode Add Digits
- Leetcode Count and Say