import java.util.*;
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    TreeNode pre;
    public TreeNode Convert(TreeNode pRootOfTree) {
        if(pRootOfTree==null){
            return null;
        }
        middle(pRootOfTree);
        while(pRootOfTree.left!=null){
            pRootOfTree = pRootOfTree.left;
        }
        return pRootOfTree;

    }

    public void middle(TreeNode pRootOfTree) {
        // TODO
        if(pRootOfTree==null){
            return;
        }
        middle(pRootOfTree.left);
        if(pre == null){
            pre = pRootOfTree;
        }else{
            pre.right = pRootOfTree;
            pRootOfTree.left = pre;
            pre = pRootOfTree;
        }
        middle(pRootOfTree.right);
    }
}