思路:先用.next找到整棵树的根结点,并对这棵树采取用中序遍历和存入list中。最后再for循环找到下一个结点
import java.util.*;
public class Solution {
ArrayList<TreeLinkNode> list = new ArrayList<TreeLinkNode>();
public TreeLinkNode GetNext(TreeLinkNode pNode)
{
if(pNode==null)return null;
TreeLinkNode Dad = findDad(pNode);
inOrder(Dad);
for(int i=0;i<list.size();i++){
if(pNode == list.get(i)&&i<(list.size()-1)){
return list.get(i+1);
}
}
return null;
}
public TreeLinkNode findDad(TreeLinkNode pNode){
while(pNode.next!=null)pNode=pNode.next;
return pNode;
}
public void inOrder(TreeLinkNode pNode){
if(pNode==null)return;
inOrder(pNode.left);
list.add(pNode);
inOrder(pNode.right);
}
}
京公网安备 11010502036488号