如何使用 C# 中的递归反转二叉查找树?


要反转二叉查找树,我们调用一个方法 InvertABinarySearchTree,它将节点作为参数。如果节点为 null,则返回 null,如果该节点不为 null,则通过传递左右子代的值递归地调用 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

于: 2021 年 8 月 17 日更新

1K+ 次浏览

开始您的 职业生涯

通过完成本课程获得认证

开始
广告
© . All rights reserved.