Binary Tree to DLL Python
- Get link
- X
- Other Apps
PROGRAM TO CONVERT A GIVEN BINARY TREE TO DOUBLY LINKED LIST
class Node: def __init__(self, val): self.right = None self.data = val self.left = Noneclass BtoDll: def __init__(self): self.head = None self.tail = None def convert(self, root): # Base case if root is None: return # Recursively convert left subtree self.convert(root.left) # Now convert this node node = root if self.head is None: self.head = node else: self.tail.right = node node.left = self.tail self.tail = node # Finally convert right subtree self.convert(root.right) return self.headdef BinaryTree2DoubleLinkedList(root): ''' A simple recursive function to convert a given Binary tree to Doubly Linked List root --> Root of Binary Tree ''' converter = BtoDll() return converter.convert(root)def print_dll(head): '''Function to print nodes in given doubly linked list''' while head is not None: print(head.data, end=" ") head = head.right# Driver program to test above functionsif __name__ == "__main__": # Let us create the tree as # shown in above diagram root = Node(10) root.left = Node(12) root.right = Node(15) root.left.left = Node(25) root.left.right = Node(30) root.right.left = Node(36) # convert to DLL head = BinaryTree2DoubleLinkedList(root) # Print the converted list print_dll(head)
OUTPUT:
25 12 30 10 36 15
- Get link
- X
- Other Apps
Comments
Post a Comment