用 Python 编写的反转二叉树的程序

pythonserver side programmingprogramming更新于 2026/1/17 5:32:17

假设我们有一个二叉树根,我们必须将其反转,以便交换其左子树和右子树,并且还递归交换其子树。

因此,如果输入如下

那么输出将是

要解决这个问题,我们将遵循以下步骤 −

  • 定义一个方法solve(),它将获取节点

  • 如果root为null,则

    • 返回

  • 根的左边:=solve(根的右边)

  • 根的右边:=solve(根的右边)

  • 返回 root

让我们看看下面的实现以便更好地理解 −

示例

class TreeNode:
   def __init__(self, value):
      self.val = value
      self.left = None
      self.right = None

def inorder(root):
   if root:
      inorder(root.left)
      print(root.val, end=', ')
      inorder(root.right)

class Solution:
   def solve(self, root):
   if not root:
      return
   root.left, root.right = self.solve(root.right), self.solve(root.left)
   return root

ob = Solution()
root = TreeNode(5)
root.left = TreeNode(4)
root.right = TreeNode(10)
root.right.left = TreeNode(7)
root.right.right = TreeNode(15)
inv = ob.solve(root)
inorder(inv)

输入

root = TreeNode(5)
root.left = TreeNode(4)
root.right = TreeNode(10)
root.right.left = TreeNode(7)
root.right.right = TreeNode(15)

输出

15, 10, 7, 5, 4,

相关文章


有用资源