ในการสลับแผนผังการค้นหาแบบไบนารี เราเรียกเมธอด 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