2、算法分析
3、代码实现既然是找中序遍历的某一个结点的下一个结点,其实思路已经很明确了。
1、将二叉树中序遍历,存储到集合中。前提,首先找到根节点。根节点可以根据指向父节点的next指针找到。
2、找到根节点后,遍历集合,找到pNode == list.get(i),的那个元素。
注意:如果pNode是最后一个元素的话,下一个元素肯定为null;
如果pNode不是最后一个元素,返回list,get(i+1)
import java.util.ArrayList;
public class Solution {
ArrayList list = new ArrayList<>();
public TreelinkNode GetNext(TreelinkNode pNode) {
TreelinkNode par = pNode;
while(par.next != null){
par = par.next;
}
inOrder(par);
for(int i = 0;i < list.size();i++){
if(pNode == list.get(i)){
if(i == list.size() - 1){
return null;
}else{
return list.get(i + 1);
}
}
}
return null;
}
// 中序遍历
public void inOrder(TreelinkNode pNode){
if(pNode != null){
inOrder(pNode.left);
list.add(pNode);
inOrder(pNode.right);
}
}
}



