मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें सबसे गहरे नोड का मान ज्ञात करना होगा। यदि एक से अधिक गहरे नोड हैं, तो सबसे बाएं सबसे गहरे नोड को वापस करें।
तो, अगर इनपुट पसंद है
तो आउटपुट 4 होगा क्योंकि 4 और 7 सबसे गहरे हैं लेकिन 4 सबसे ज्यादा बचे हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
कतार:=एक नोड रूट के साथ एक कतार।
-
left_max :=रूट का मान
-
जबकि कतार का आकार> 0, करें
-
level_size :=कतार का आकार
-
मैं के लिए 0 से level_size की सीमा में, ऐसा करें
-
अस्थायी:=कतार से पहला तत्व और इसे हटा दें
-
अगर मैं 0 के समान हूं, तो
-
left_max :=अस्थायी का मान
-
-
यदि तापमान का बायां शून्य शून्य है, तो
-
कतार के अंत में अस्थायी के बाईं ओर डालें
-
-
अगर टेम्परेचर का राइट अशक्त नहीं है, तो
-
कतार के अंत में अस्थायी के दाईं ओर डालें
-
-
-
बाएं_मैक्स पर लौटें
-
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class TreeNode: def __init__(self, value): self.val = value self.left = None self.right = None class Solution: def solve(self, root): queue = [root] left_max = root.val while len(queue) > 0: level_size = len(queue) for i in range(level_size): temp = queue.pop(0) if i == 0: left_max = temp.val if temp.left: queue.append(temp.left) if temp.right: queue.append(temp.right) return left_max ob = Solution() root = TreeNode(13) root.left = TreeNode(12) root.right = TreeNode(14) root.right.left = TreeNode(16) root.right.right = TreeNode(22) root.right.left.left = TreeNode(4) root.right.left.right = TreeNode(7) print(ob.solve(root))
इनपुट
root = TreeNode(13) root.left = TreeNode(12) root.right = TreeNode(14) root.right.left = TreeNode(16) root.right.right = TreeNode(22) root.right.left.left = TreeNode(4) root.right.left.right = TreeNode(7)
आउटपुट
4