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