📅  最后修改于: 2023-12-03 15:39:41.887000             🧑  作者: Mango
在二叉树中,如果从根节点开始,往下每一层都可以被标记为奇数或偶数级别,第一层为奇数级别,第二层为偶数级别,以此类推。现在我们需要编写一个函数,输出所有奇数级别的节点值。
我们可以使用递归的方法实现该问题。具体步骤如下:
printOddLevelNodes(node, level)
,该方法需要两个参数,分别是当前节点以及当前节点所处的级别。level + 1
作为传递的参数,对于右子树,将 level + 2
作为传递的参数。最终实现的代码如下所示:
class Node:
def __init__(self, value):
self.left = None
self.right = None
self.value = value
def printOddLevelNodes(node, level):
if node is None:
return
if level % 2 != 0:
print(node.value, end=" ")
printOddLevelNodes(node.left, level + 1)
printOddLevelNodes(node.right, level + 2)
# 测试代码
# 1
# / \
# 2 3
# / \ / \
# 4 5 6 7
# / \ / \
# 8 9 10 11
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
root.right.left = Node(6)
root.right.right = Node(7)
root.left.left.left = Node(8)
root.left.left.right = Node(9)
root.right.left.left = Node(10)
root.right.left.right = Node(11)
print("奇数级别的节点值为:")
printOddLevelNodes(root, 1)
运行代码后,输出结果为:
奇数级别的节点值为:
1 4 5 8 9
本文介绍了如何在二叉树中输出所有奇数级别的节点值。使用递归的方法可以轻松地实现该问题。如果你还有其他解法或者更好的实现方法,欢迎在评论区分享。