思路:先中序遍历得到排好序的节点,然后组成链表就好了。

 List<TreeNode> list = new ArrayList<>();
    public TreeNode Convert(TreeNode pRootOfTree) {
        getSortedNode(pRootOfTree);

        for(int i = 0; i < list.size() - 1; i++){
            list.get(i).right = list.get(i + 1);
            list.get(i + 1).left = list.get(i);
        }
        return list.get(0);
    }
    private TreeNode getSortedNode(TreeNode root){
        if(root==null) return  null;
        getSortedNode(root.left);
        list.add(root);
        getSortedNode(root.right);
        return root;
    }