如何在 C# 中使用递归反转二叉搜索树?

csharpserver side programmingprogramming更新于 2025/4/18 6:22:17

要反转二叉搜索树,我们调用一个方法 InvertABinarySearchTree,该方法以节点为参数。如果节点为空,则返回空,如果节点不为空,我们通过传递左子节点和右子节点值来递归调用 InvertABinarySearchTree。并将右子节点值分配给左子节点,将左子节点值分配给右子节点。最终输出将由树组成,该树将是其自己的镜像。

示例

public class TreesPgm{
   public class Node{
      public int Value;
      public Node LeftChild;
      public Node RightChild;
      public Node(int value){
         this.Value = value;
      }  
      public override String ToString(){
         return "Node=" + Value;
      }
   }
   public Node InvertABinarySearchTree(Node node){
      if (node == null){
         return null;
      }
      Node left = InvertABinarySearchTree(node.LeftChild);
      Node right = InvertABinarySearchTree(node.RightChild);
      node.LeftChild = right;
      node.RightChild = left;
      return root;
   }
}

输入

   1
  3 2

输出

   1
  2 3

相关文章