मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें सबसे गहरे नोड का मान ढूंढना है। यदि एक से अधिक सबसे गहरे नोड हैं, तो सबसे बाएं गहरे नोड को लौटाएं।
उदाहरण के लिए, यदि इनपुट निम्न ट्री है:

तो आउटपुट 4 होगा क्योंकि 4 और 7 सबसे गहरे हैं लेकिन 4 सबसे बाएं है।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
queue := [root]वाली एक क्यू बनाएं।left_max := root.val।जब तक क्यू का आकार > 0:
level_size := len(queue)।iको 0 सेlevel_size - 1तक लूप में चलाएं:temp := queue.pop(0)।यदि
i == 0, तोleft_max := temp.val।यदि
temp.leftहै, तोqueue.append(temp.left)।यदि
temp.rightहै, तोqueue.append(temp.right)।
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