<p>Write an algorithm to find the &quot;next&quot; node (i.e., in-order successor) of a given node in a binary search tree.</p>



<p>Return <code>null</code> if there&#39;s no &quot;next&quot; node for the given node.</p>



<p><strong>Example 1:</strong></p>



<pre>

<strong>Input:</strong> root = <code>[2,1,3], p = 1



  2

 / \

1   3

</code>

<strong>Output:</strong> 2</pre>



<p><strong>Example 2:</strong></p>



<pre>

<strong>Input:</strong> root = <code>[5,3,6,2,4,null,null,1], p = 6



      5

     / \

    3   6

   / \

  2   4

 /   

1

</code>

<strong>Output:</strong> null</pre>