[LeetCode]#897. Increasing Order Search Tree
Dec 31, 2020
Environment: Python 3.8
Key technique: TreeNode, function
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]
Analysis:
- Refer to the below link for using binarytree module.
2. Search treeNode left side util no value.
3. Add it to new tree and search this value right.
Solution:
class Solution:
def increasingBST(self, root):
arr = []
def inorder(root):
if not root:
return []
inorder(root.left)
arr.append(root.val)
inorder(root.right)
inorder(root)
new_root = TreeNode(arr[0])
temp = new_root
for i in range(1,len(arr)):
temp.right = TreeNode(arr[i])
temp = temp.right
return new_root
Submissions:
Reference: