如何在 C# 中使用递归反转二叉搜索树?
为了反转二叉搜索树,我们调用了一个方法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