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