
g0501_0600.s0543_diameter_of_binary_tree.solution.go Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-all Show documentation
Show all versions of leetcode-in-all Show documentation
104 LeetCode algorithm problem solutions
The newest version!
package s0543_diameter_of_binary_tree
// #Easy #Top_100_Liked_Questions #Depth_First_Search #Tree #Binary_Tree #Level_2_Day_7_Tree
// #Udemy_Tree_Stack_Queue #Big_O_Time_O(n)_Space_O(n)
// #2024_03_12_Time_3_ms_(71.60%)_Space_6.8_MB_(5.31%)
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func diameterOfBinaryTree(root *TreeNode) (answer int) {
var dfs func(*TreeNode) int
dfs = func(node *TreeNode) int {
if node == nil {
return 0
}
left, right := dfs(node.Left), dfs(node.Right)
answer = max(answer, left+right)
return max(left, right) + 1
}
dfs(root)
return answer
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy