代码语言:javascript复制给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果节点没有中序后继,请返回 null 节点 p 的后继是值比 p.val 大的节点中键值最小的节点,即按中序遍历的顺序节点 p 的下一个节点。
/**
利用二叉搜索树中序遍历性质即可
*/
class Solution {
List<TreeNode> list=new ArrayList();
public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {
process(root);
if(list.indexOf(p) 1==list.size()) return null;
return list.get(list.indexOf(p) 1);
}
public void process(TreeNode root){
if(root==null) return;
process(root.left);
list.add(root);
process(root.right);
}
}