| 12345678910111213141516171819202122232425262728293031323334 | 
							- package main
 
- /**
 
-  * Definition for a binary tree node.
 
-  * type TreeNode struct {
 
-  *     Val int
 
-  *     Left *TreeNode
 
-  *     Right *TreeNode
 
-  * }
 
-  */
 
- func flatten(root *TreeNode) { // Inorder flatten
 
- 	prev := (*TreeNode)(nil)
 
- 	flattenHelper(root, &prev)
 
- }
 
- // Reverse order of the inorder traversal
 
- // root -> left -> right => right -> left -> root
 
- func flattenHelper(root *TreeNode, prev **TreeNode) {
 
- 	if root == nil {
 
- 		return
 
- 	}
 
- 	flattenHelper(root.Right, prev)
 
- 	flattenHelper(root.Left, prev)
 
- 	root.Left = nil
 
- 	root.Right = *prev
 
- 	*prev = root
 
- }
 
- // func main() {
 
- // 	root1 := sortedArrayToBST([]int{3, 2, 4, 1, 6, 5, 7})
 
- // 	printTree(root1)
 
- // 	flatten(root1)
 
- // 	printTree(root1)
 
- // }
 
 
  |