二叉搜索树与双向链表

题目描述:
输入一颗二叉搜索树,将该二叉树转换成一个排序的双向链表,要求不能创建任何一个新的节点,只能调整节点中的指针;
二叉搜索树与双向链表

代码:
剑指offer上的方法:

    static BinaryTreeNode node = null;
    public static BinaryTreeNode Convert(BinaryTreeNode root) {
        ConvertNode(root);
        BinaryTreeNode head = node;
        while(head != null && head.left != null) {
            head = head.left;
        }
        return head;
    }

    private static void ConvertNode(BinaryTreeNode root) {
        if(root == null) {
            return;
        }
        BinaryTreeNode cur = root;

        if(cur.left != null) {
            ConvertNode(root.left);
        }
        cur.left = node;
        if(node != null) {
            node.right = cur;
        }
        node = cur;
        if(cur.right != null) {
            ConvertNode(root.right);
        }
    }

但我觉得还是用中序遍历的思想的这种方法简单:

    BinaryTreeNode head = null;
    BinaryTreeNode parent = null;
    /**
     *  用中序遍历的思想
     * @param root
     * @return
     */
    private BinaryTreeNode Convert(BinaryTreeNode root) {
        if(root == null) {
            return null;
        }
        Convert(root.left);

        if(head == null) {
            head = root;
            parent = root;
        }else {
            parent.right = root;
            root.left = parent;
            parent = root;
        }

        Convert(root.right);

        return head;
    }