Created
December 3, 2020 12:28
-
-
Save kuntalchandra/829af30ca0b542a99204f1bd12e6d7cd to your computer and use it in GitHub Desktop.
Increasing Order Search Tree
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Given the root of a binary search tree, rearrange the tree in in-order so that the leftmost node in the tree is now | |
the root of the tree, and every node has no left child and only one right child. | |
Example 1: | |
Input: root = [5,3,6,2,4,null,8,1,null,null,null,7,9] | |
Output: [1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9] | |
Example 2: | |
Input: root = [5,1,7] | |
Output: [1,null,5,null,7] | |
""" | |
# Definition for a binary tree node. | |
# class TreeNode: | |
# def __init__(self, val=0, left=None, right=None): | |
# self.val = val | |
# self.left = left | |
# self.right = right | |
class Solution: | |
def __init__(self): | |
self.arr = [] | |
def in_order(self, root: TreeNode) -> TreeNode: | |
if root: | |
self.in_order(root.left) | |
self.arr.append(root.val) | |
self.in_order(root.right) | |
def increasingBST(self, root: TreeNode) -> TreeNode: | |
sentinel = curr = TreeNode() | |
self.in_order(root) | |
for val in self.arr: | |
curr.right = TreeNode(val) | |
curr = curr.right | |
return sentinel.right |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment