| 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 -> rootfunc 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)// }
 |