/*
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);
}
}
}