leetcode-543. 二叉树的直径

543. 二叉树的直径 - 力扣(Leetcode)

深度优先遍历,每个节点的直径等于左子树的最大深度加上右子树的最大深度,取一个最大值即可

/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
var maxHeight int
func diameterOfBinaryTree(root *TreeNode) int {
if root == nil {
return 0
}
maxHeight = 0
depth(root)
return maxHeight
}
func depth(root *TreeNode) int {
if root == nil {
return 0
}
var left, right int
if root.Left != nil {
left = depth(root.Left) + 1
}
if root.Right != nil {
right = depth(root.Right) + 1
}
if left + right > maxHeight {
maxHeight = left+right
}
if left > right {
return left
}
return right
}
posted @   吴丹阳-V  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-12-29 程序写日志文件时该不该加锁 & PHP 写日志为什么加锁
点击右上角即可分享
微信分享提示