/*
public class TreeLinkNode {
    int val;
    TreeLinkNode left = null;
    TreeLinkNode right = null;
    TreeLinkNode next = null;

    TreeLinkNode(int val) {
        this.val = val;
    }
}
*/
import java.util.ArrayList;
public class Solution {
    public TreeLinkNode GetNext(TreeLinkNode pNode)
    {
        ArrayList<TreeLinkNode> arr=new ArrayList<TreeLinkNode>();
        //寻找二叉树的根节点
        TreeLinkNode cur=pNode;
        while(cur.next!=null){
            cur=cur.next;
        }
        //中序遍历当前二叉树
        inorderTraversal(cur,arr);
        //寻找下一个节点
        for(int i=0;i<arr.size();i++){
            if(arr.get(i)==pNode){
                return i==arr.size()-1?null:arr.get(i+1);
            }
        }
        return null;
    }


    //递归中序遍历
    public static void inorderTraversal(TreeLinkNode root,ArrayList<TreeLinkNode> list){
        if(root!=null){
            inorderTraversal(root.left,list);
            list.add(root);
            inorderTraversal(root.right,list);
        }
    }
}