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

TreeLinkNode(int val) {
    this.val = val;
}

} */ import java.util.LinkedList; import java.util.List;

public class Solution { List list = new LinkedList<>();

public TreeLinkNode GetNext(TreeLinkNode pNode) {
    if(pNode == null) return null;

//如果只有一个结点,返回空 if(pNode.left==null && pNode.right==null && pNode.next==null) return null;

//寻找对应的根节点 TreeLinkNode root = findRoot(pNode); dfs(root);//将树的中序遍历放入链表中 for(int i = 0;i < list.size();i++) { if(i == 0) { list.get(0).right = list.get(1); continue; } if(i == list.size() - 1) { list.get(i).left = list.get(i-1); continue; }

    	list.get(i).left = list.get(i-1);
    	list.get(i).right = list.get(i+1);
    }
    
    TreeLinkNode newNode = new TreeLinkNode(-10);
    //在链表中寻找对应值
    for (TreeLinkNode treeNode : list) {
		if(treeNode.val == pNode.val){
            if(treeNode.right != null) newNode.val = treeNode.right.val;
			else return null;
        }
	}
	
	return newNode;
}

public void dfs(TreeLinkNode tree) {
	if(tree == null) return;
	
	dfs(tree.left);
	list.add(tree);
	dfs(tree.right);
}

public TreeLinkNode findRoot(TreeLinkNode node) {
	while(node.next != null) node = node.next;
	return node;
}

}