123456789101112131415161718192021222324252627282930 |
- var max int = 0
- /**
- * Definition for a binary tree node.
- * type TreeNode struct {
- * Val int
- * Left *TreeNode
- * Right *TreeNode
- * }
- */
- func diameterOfBinaryTree(root *TreeNode) int {
- max = 0
- postorder(root, &max)
- return
- }
- func postorder(root *TreeNode, max *int) int {
- if root == nil {
- return -1
- }
- l := postorder(root.Left, max) + 1
- r := postorder(root.Right, max) + 1
- if *max < l+r {
- *max = l + r
- }
- if l < r {
- return r
- }
- return l
- }
|