मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें जांचना है कि सभी पत्ते (लीफ नोड्स) एक ही लेवल पर हैं या नहीं।
उदाहरण के लिए, यदि इनपुट निम्न ट्री है:

तो आउटपुट True होगा।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
dfs()फ़ंक्शन परिभाषित करें जोroot, dलेता है।यदि
rootnull नहीं है:यदि
root.leftऔरroot.rightदोनों null हैं, तोdepthसूची मेंdजोड़ें।अन्यथा,
dfs(root.left, d+1)औरdfs(root.right, d+1)कॉल करें।
मुख्य विधि से:
depth := []।dfs(root, 0)कॉल करें।यदि
depthसेट का आकार 1 है तोTrueलौटाएं, अन्यथाFalse।
उदाहरण
class TreeNode: def __init__(self, value): self.val = value self.left = None self.right = None class Solution: def solve(self, root): self.depth = [] self.dfs(root, 0) return len(set(self.depth)) == 1 def dfs(self, root, depth): if root: if not root.left and not root.right: self.depth.append(depth) else: self.dfs(root.left, depth + 1) self.dfs(root.right, depth + 1) ob = Solution() root = TreeNode(5) root.left = TreeNode(4) root.left.left = TreeNode(2) root.right = TreeNode(10) root.right.left = TreeNode(7) root.right.right = TreeNode(15) print(ob.solve(root))
इनपुट
root = TreeNode(5) root.left = TreeNode(4) root.left.left = TreeNode(2) root.right = TreeNode(10) root.right.left = TreeNode(7) root.right.right = TreeNode(15)
आउटपुट
True