题目来源: 543.二叉树的直径
思路:
关键点:1、如何求得两个叶子结点之间的路径长度:
两个叶子结点之间路径 = 根结点左右儿子的深度之和(当前结点的层数,从该结点出发往下找,最多能找几个结点,它的深度就是几)
python代码:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def diameterOfBinaryTree(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.res = 0
def dps(root):
if not root:
return 0
left = dps(root.left)
right = dps(root.right)
self.res = max(left+right+1, self.res)
return max(left, right) + 1
dps(root)
return self.res - 1
参考链接: LeetCode0543: 二叉树的直径
543. 二叉树的直径 Diameter of Binary Tree【LeetCode 力扣官方题解】