title: What type of recursion is a return statement with an "OR"?
body: <p>Here's my pseudocode for a recursive program that moves a circle either right or left of an array. I'm trying figure out the complexity (which I think is n, the size of the array A, or could it be 2^n since it can either return left or right?).</p>
  
  <p>I'm also trying to figure out what kind of recursion this is, since it has an OR in the last return statement but nowhere can I find information on this.</p>
  
  <pre><code> Boolean rightWing (int circle, Array A, List&lt;int&gt; checkerList)
  
  Integer lastPlace equals A.length - 1
  
  If circle equals lastPlace then // base case for recursion
      Return true
  
  If circle &lt; 0 then
      Return false
  
  If circle &gt; lastPlace then
      Return false
  
  // impossible case
  If checkerList contains (circle) returns True then
      Return false
  
  checkerList.add(circle) // add the circle to the list for the checker if it's an impossible case
  
  Integer moveRight equals circle + A[circle] 
  Integer moveLeft equals circle - A[circle]
  
  Return rightWing ( moveRight, A, checkerList) or rightWing(moveLeft, A, checkerList)
  </code></pre>