Overview
The objective is to get the height of a binary tree. For example, if let’s say we have below binary tree
Then the height of the binary tree is 3 here.
Program
Below is the program for the same
package main
import (
"fmt"
)
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func maxDepth(root *TreeNode) int {
if root == nil {
return 0
}
if root.Left == nil && root.Right == nil {
return 1
}
lHeight := maxDepth(root.Left)
rHeight := maxDepth(root.Right)
if lHeight >= rHeight {
return lHeight + 1
} else {
return rHeight + 1
}
}
func main() {
root := TreeNode{Val: 1}
root.Left = &TreeNode{Val: 2}
root.Left.Left = &TreeNode{Val: 4}
root.Right = &TreeNode{Val: 3}
root.Right.Left = &TreeNode{Val: 5}
root.Right.Right = &TreeNode{Val: 6}
height := maxDepth(&root)
fmt.Println(height)
}
Output
3