Return statement not executing
<p>So I wrote a code which is supposed to get the parent of a given node in a tree. Here is the pseudo code. Starting from the root,</p>

<pre><code>def parent(self, child): 
    if right child exists:
        if the right child == child:
            return self
        else: self.right.parent(child)
    if left child exists:
        if the left child == child:
            print('f')
            return self
        else: self.left._get_parent(node)
</code></pre>

<p>I keep coming across this problem over and over and over again. 
For the <code>if the left child == child:</code> statement, the function DOES enter the <code>if</code> statement if it finds that either <code>the left child == child</code> or <code>the right child == child</code>.</p>

<p>However, the return statement does not execute this. I know this because when I wrote the <code>if the left child == child:</code> and wrote <code>print('f')</code> after it, it did print <code>f</code>, however, it did not return <code>self</code>. Does anyone know why and can anyone give a solution as to how to fix this problem? </p>

<p>Additionally, does anyone know how to return two statements at once NOT as tuples or lists?
For example, if I want to return 1 and 2,  </p>

<pre><code>def x(n):
    return 1, 2
</code></pre>

<p>This would return <code>(1, 2)</code>.. is there any way for it to not return it as a tuple? And just to return it normally. I'm asking this because when it comes to recursion, I want to call the same function on 1 AS WELL AS 2, and not on the tuple <code>(1, 2)</code>.</p>
