एक ट्री एक बाइनरी सर्च ट्री है यदि उसके सभी बाएँ बच्चे नोड तत्वों से कम हैं और सभी दाएँ बच्चे नोड तत्वों से बड़े हैं। प्रारंभ में हम जांचते हैं कि क्या नोड का कोई मूल्य है, यदि नोड शून्य है तो हम मान्य बाइनरी सर्च ट्री मानते हैं और सही लौटते हैं। नोड नल परिणाम की जाँच करने के बाद, हम नोड, न्यूनतम मान और अधिकतम मान पास करके पुनरावर्ती विधि isValidBST कहते हैं। यदि मूल मान न्यूनतम से कम है और मूल मान अधिकतम से अधिक है, तो हम बाइनरी सर्च ट्री नहीं मानते हैं और असत्य वापस लौटते हैं, अन्यथा हम isValidBST विधि को बाएं और दाएं मान को पुनरावर्ती रूप से तब तक कहते हैं जब तक कि यह सभी नोड्स की जांच न कर ले
उदाहरण
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 bool isValidBST(Node root){ if (root == null){ return true; } return isValidBST(root, int.MinValue, int.MaxValue); } private bool isValidBST(Node root, int min, int max){ if (root == null){ return true; } if (root.Value <= min || root.Value >= max){ return false; } return isValidBST(root.LeftChild, min, root.Value) && isValidBST(root.RightChild, root.Value, max); } }
इनपुट
5 2 6 1 3
आउटपुट
True