📅  最后修改于: 2023-12-03 15:23:02.533000             🧑  作者: Mango
该问题是关于二叉树的深度的问题。给定一个二叉树的根节点,要求编写一个函数来计算该二叉树的深度。
给定一个二叉树的根节点,请编写一个函数来计算该二叉树的深度。你可以假设该二叉树是一棵拥有n个节点的完全二叉树,其结构如下:
1
/ \
2 3
/ \ / \
4 5 6 7
示例:
def depth(root):
pass
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right= TreeNode(5)
root.right.left = TreeNode(6)
root.right.right = TreeNode(7)
print(depth(root)) # 输出:3
二叉树的深度可以使用递归来实现。若根节点为 None,则返回 0。否则,分别计算左子树和右子树的深度,取较大值加 1 即可。
递归函数定义
def depth(root):
if not root:
return 0
left_depth = depth(root.left)
right_depth = depth(root.right)
return max(left_depth, right_depth) + 1
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def depth(root):
if not root:
return 0
left_depth = depth(root.left)
right_depth = depth(root.right)
return max(left_depth, right_depth) + 1
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right= TreeNode(5)
root.right.left = TreeNode(6)
root.right.right = TreeNode(7)
print(depth(root)) # 输出:3
以上就是计算二叉树深度的代码实现,可以对二叉树这种数据结构有更深入的了解。