package main
import "fmt"
// 定义二叉树节点结构体
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
// 递归求二叉树节点数
func NodeCount(root *TreeNode) int {
if root == nil {
return 0
}
return 1 + NodeCount(root.Left) + NodeCount(root.Right)
}
// 使用示例
func main() {
// 创建二叉树
// 1
// / \
// 2 3
// / \
// 4 5
node1 := &TreeNode{Val: 1}
node2 := &TreeNode{Val: 2}
node3 := &TreeNode{Val: 3}
node4 := &TreeNode{Val: 4}
node5 := &TreeNode{Val: 5}
node1.Left = node2
node1.Right = node3
node2.Left = node4
node3.Right = node5
// 计算节点数
count := NodeCount(node1)
fmt.Println("节点数:", count) // 输出应为 5
}
golang求二叉树节点数
最新推荐文章于 2024-07-12 14:34:21 发布