📅  最后修改于: 2023-12-03 15:26:08.913000             🧑  作者: Mango
二叉搜索树(Binary Search Tree, BST)是一种常见的数据结构,它是一棵二叉树,且满足每个节点的左子树中的所有节点都小于该节点,右子树中的所有节点都大于该节点。它的搜索、插入、删除等操作都比较高效,时间复杂度为 O(log n) 。本文将介绍二叉搜索树的第七个问题。
给定一棵二叉搜索树,求该二叉搜索树的镜像树。
二叉搜索树的镜像树是指将该二叉搜索树中的左右子树互换,得到的新树即为该二叉搜索树的镜像树。我们可以通过递归遍历二叉搜索树的每一个节点,交换该节点的左右子树来实现该操作。
以下是二叉搜索树镜像的实现代码,以 Python 语言为例:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def mirrorTree(self, root: TreeNode) -> TreeNode:
if not root:
return None
root.left, root.right = root.right, root.left
self.mirrorTree(root.left)
self.mirrorTree(root.right)
return root
二叉搜索树的镜像树是很容易求得的,只需要交换每个节点的左右子树即可。因为交换操作是在递归函数内进行的,所以时间复杂度为 O(n),其中 n 为二叉搜索树中节点的数量。