📅  最后修改于: 2023-12-03 15:39:41.029000             🧑  作者: Mango
在二叉树中,如果节点的值是质数,那么就需要将它打印出来。下面是实现的思路:
is_prime()
,用于判断一个数字是否是质数:从2到该数的平方根范围内逐个判断是否能被整除;print_prime()
,实现对二叉树的遍历,如果节点的值是质数,就打印出来;print_prime()
函数,将整棵二叉树遍历一遍。下面是完整的实现代码:
# 定义二叉树节点类
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
# 判断是否为质数
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
# 对二叉树进行遍历
def print_prime(root):
if root:
if is_prime(root.val):
print(root.val)
print_prime(root.left)
print_prime(root.right)
# 主函数
def main():
# 构建一个二叉树
root = TreeNode(5)
root.left = TreeNode(3)
root.right = TreeNode(7)
root.left.left = TreeNode(2)
root.left.right = TreeNode(4)
root.right.left = TreeNode(6)
root.right.right = TreeNode(9)
# 遍历二叉树并打印出所有的质数
print_prime(root)
if __name__ == "__main__":
main()
上述代码输出的结果为:
5
3
2
7
注:以上输出不是markdown格式,是纯文本格式。该代码的输出会根据实际的二叉树节点情况而定。