/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode increasingBST(TreeNode root) {
ArrayList<TreeNode> list=new ArrayList<>();
TreeNode p,myroot;
f(root,list);
myroot=list.get(0);
myroot.left=null;
myroot.right=null;
p=myroot;
for(int i=1;i<list.size();i++){
p.right=list.get(i);
p.left=null;
p=p.right;
}
p.right=null;
p.left=null;
return myroot;
}
public void f(TreeNode root,ArrayList list){
if(root!=null){
f(root.left,list);
list.add(root);
f(root.right,list);
}
}
}