二叉树的最大宽度--google面试遇到过,他是要求求解所有路径path
543. 二叉树的直径
难度简单
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。
示例 :
给定二叉树
1 / \ 2 3 / \ 4 5
返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。
方法:深度优先搜索
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Solution: def diameterOfBinaryTree( self , root: Optional[TreeNode]) - > int : self .path_len = 0 # 记录的是路径节点数目 def dfs(root): if not root: return 0 height_l = dfs(root.left) height_r = dfs(root.right) self .path_len = max ( self .path_len, height_l + height_r + 1 ) # height_l+height_r+1就是左边的节点个数+右边节点个数+根节点1个 return 1 + max (height_l, height_r) dfs(root) return self .path_len - 1 # 路径节点数目 - 1才是长度 |
链接:https://leetcode.cn/problems/diameter-of-binary-tree/solution/er-cha-shu-de-zhi-jing-by-leetcode-solution/
标签:
算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2017-01-20 linux查看网卡速度
2017-01-20 linux IP局域网监控工具——iptraf
2017-01-20 iostat相关参数说明——await:平均每次设备I/O操作的等待时间 (毫秒),如果%util接近 100%,说明产生的I/O请求太多
2017-01-20 NoSQL四种——kv存储(memcache,Riak),列存储(Cassandra,Hbase),文档类(mongoDB,CouchDB),图数据库(neo4j)