public TreeNode nextNode(TreeNode root, TreeNode one) {
if(one.right!=null) {
TreeNode p=one.right;
while(p.left!=null) {
p=p.left;
}
return p;
}
else {
//如这个节点没有右子树
if(one.father.left==one) {
//如果他是左孩子
return one.father;
}
else {
//他是右孩子
TreeNode p=one.father;
while(p.father!=null&&p.father.right==p) {//别忘了p.father!=null这个条件。缺了会有问题。
p=p.father;
}
return p.father;
}
}
}
没有地方验证