import java.util.ArrayList;

public class Solution {

public int number;
public void expandTree (TreeNode root) {
    // write code here
    if(root==null){
        return;
    }
    //计算树节点的个数
    computeTreeNumber(root);
    //初始化
    ArrayList<TreeNode> treeNodeArrayList = new ArrayList<>(number);
    //把节点放入到容器中
    doExpandTree(root,treeNodeArrayList);
    //生成链表树
    TreeNode temp = root;
    temp.left=null;
    for (int i = 1; i < treeNodeArrayList.size(); i++) {
        temp.right=treeNodeArrayList.get(i);
        temp.right.left=null;
        temp=temp.right;
    }
}

public void computeTreeNumber(TreeNode root){
    if(root!=null){
        number++;
    } else {
        return;
    }
    computeTreeNumber(root.left);
    computeTreeNumber(root.right);
}

private void doExpandTree(TreeNode root,ArrayList<TreeNode> treeNodeArrayList) {
    if(root!=null){
        treeNodeArrayList.add(root);
    }else {
        return;
    }
    if(root.left!=null){
        doExpandTree(root.left,treeNodeArrayList);
    }
    if(root.right!=null){
        doExpandTree(root.right,treeNodeArrayList);
    }
}

}