可以通过递归或迭代的方式实现。以下是两种常见的方法:
方法一:递归法 递归法是一种简单直观的方法,通过递归地计算左右子树的深度,然后取较大值再加上根节点的深度即可。
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def maxDepth(root):
if root is None:
return 0
left_depth = maxDepth(root.left)
right_depth = maxDepth(root.right)
return max(left_depth, right_depth) + 1
方法二:迭代法(层序遍历) 迭代法使用队列来实现层序遍历,每遍历一层,深度加一,直到遍历完所有节点。
from collections import deque
def maxDepth(root):
if root is None:
return 0
queue = deque()
queue.append(root)
depth = 0
while queue:
size = len(queue)
for _ in range(size):
node = queue.popleft()
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
depth += 1
return depth
以上是在Python中寻找二叉树深度的两种常见方法。这些方法适用于各种类型的二叉树,可以帮助我们快速计算二叉树的深度。
腾讯云相关产品推荐:
更多腾讯云产品信息和介绍,请访问腾讯云官方网站:https://cloud.tencent.com/
领取专属 10元无门槛券
手把手带您无忧上云