ধরুন আমাদের একটি বাইনারি গাছের মূল আছে, আমাদের এটিকে উল্টাতে হবে যাতে এর বাম সাবট্রি এবং ডান সাবট্রি বিনিময় হয় এবং তাদের বাচ্চাদেরও বারবার বিনিময় করা হয়।
সুতরাং, যদি ইনপুট মত হয়
তাহলে আউটপুট হবে
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি পদ্ধতি সংজ্ঞায়িত করুন সমাধান(), এটি নোড গ্রহণ করবে
-
যদি রুট শূন্য হয়, তাহলে
-
ফেরত
-
-
মূলের বাম :=সমাধান (মূলের ডানদিকে)
-
মূলের অধিকার :=সমাধান (মূলের ডান)
-
রিটার্ন রুট
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class TreeNode: def __init__(self, value): self.val = value self.left = None self.right = None def inorder(root): if root: inorder(root.left) print(root.val, end=', ') inorder(root.right) class Solution: def solve(self, root): if not root: return root.left, root.right = self.solve(root.right), self.solve(root.left) return root ob = Solution() root = TreeNode(5) root.left = TreeNode(4) root.right = TreeNode(10) root.right.left = TreeNode(7) root.right.right = TreeNode(15) inv = ob.solve(root) inorder(inv)
ইনপুট
root = TreeNode(5) root.left = TreeNode(4) root.right = TreeNode(10) root.right.left = TreeNode(7) root.right.right = TreeNode(15)
আউটপুট
15, 10, 7, 5, 4,