在Python中查找非二进制树的高度和深度可以通过递归或迭代的方式来实现。
首先,定义一个树节点的类,包含节点值和子节点列表:
class TreeNode:
def __init__(self, value):
self.value = value
self.children = []
然后,定义一个递归函数来计算树的高度和深度:
def get_tree_height_depth(root):
if not root:
return 0
max_depth = 0
for child in root.children:
max_depth = max(max_depth, get_tree_height_depth(child))
return max_depth + 1
使用示例:
# 构建一个非二进制树
root = TreeNode(1)
node2 = TreeNode(2)
node3 = TreeNode(3)
node4 = TreeNode(4)
node5 = TreeNode(5)
root.children = [node2, node3]
node2.children = [node4]
node3.children = [node5]
# 计算树的高度和深度
height = get_tree_height_depth(root)
print("树的高度为:", height)
首先,定义一个树节点的类,包含节点值和子节点列表:
class TreeNode:
def __init__(self, value):
self.value = value
self.children = []
然后,定义一个迭代函数来计算树的高度和深度:
def get_tree_height_depth(root):
if not root:
return 0
stack = [(root, 1)]
max_depth = 0
while stack:
node, depth = stack.pop()
max_depth = max(max_depth, depth)
for child in node.children:
stack.append((child, depth + 1))
return max_depth
使用示例:
# 构建一个非二进制树
root = TreeNode(1)
node2 = TreeNode(2)
node3 = TreeNode(3)
node4 = TreeNode(4)
node5 = TreeNode(5)
root.children = [node2, node3]
node2.children = [node4]
node3.children = [node5]
# 计算树的高度和深度
height = get_tree_height_depth(root)
print("树的高度为:", height)
以上是在Python中查找非二进制树的高度和深度的方法。对于非二进制树的高度和深度,可以使用递归或迭代的方式来计算。递归方法通过递归调用来计算树的高度和深度,而迭代方法通过迭代遍历树的节点来计算树的高度和深度。根据具体的需求和场景选择适合的方法。
领取专属 10元无门槛券
手把手带您无忧上云