package main
import . "nc_tools"
/*
 * type TreeNode struct {
 *   Val int
 *   Left *TreeNode
 *   Right *TreeNode
 * }
 */

/**
 * 
 * @param pRootOfTree TreeNode类 
 * @return TreeNode类
*/
func Convert( pRootOfTree *TreeNode ) *TreeNode {
    if pRootOfTree == nil {
        return nil
    }
    var last,pre * TreeNode
    var dfs func(*TreeNode)
    dfs = func(root *TreeNode) {
        if root == nil {
            return
        }
        dfs(root.Left)
        if last != nil {
            last.Right = root
            root.Left = last
        } else {
            pre = root
        }
        last = root
        dfs(root.Right)
    }
    dfs(pRootOfTree)

    return pre
}