# 510 inorder successor in BST II

差一点点就想出来了 主要是没有右节点的时候很tricky，要在自己是parent的右孩子的时候不断往上，直到parent变成null或者自己变成parent的左孩子 这时候return parent即可

```java
/*
// Definition for a Node.
class Node {
    public int val;
    public Node left;
    public Node right;
    public Node parent;
};
*/

class Solution {
    public Node inorderSuccessor(Node node) {
        if (node.right == null) {
            while (node.parent != null && node == node.parent.right) node = node.parent;
            return node.parent;
        }
        Node cur = node.right;
        while (cur.left != null) cur = cur.left;
        return cur;
    }
}a
```
