एक द्विआधारी खोज वृक्ष और एक पूर्णांक कश्मीर को देखते हुए में कश्मीर की तुलना में छोटे ढूंढने के लिए, मैं सबसे बड़ा तत्व लालकृष्णसबसे बड़ा तत्व एक BST
से कमनीचे ट्री में प्राप्त करना चाहते हैं,
for K = 13, result = 12
for K = 10, result = 8
for K = 1 (or) 2, result = -1
10
5 12
2 8 11 14
मैंने नीचे तर्क की कोशिश की। लेकिन क्या ऐसा करने का कोई बेहतर तरीका है?
int findNum(node* node, int K)
{
if(node == NULL)
{
return -1;
}
else if(K <= node->data)
{
return findNum(node->left,K);
}
else if(K > node->data)
{
int t = findNum(node->right,K);
return t > node->data ? t : node->data;
}
return -1;
}
मेरे लिए अच्छा लग रहा है। –
यदि आपको के -1 मिल जाए तो आपको समाप्त करना चाहिए। यदि आप ऐसा कर रहे हैं तो मैं आपके कोड से नहीं बता सकता (हालांकि यह स्पष्ट हो सकता है, मुझे सी ++ नहीं पता)। – PengOne
कृपया "बेहतर" परिभाषित करें। अधिक कुशल? अधिक सटीक? –