structparent.child.method(child) -> [parent becomes nil]-> parent(the previous child).child ... etc

Here is the error snippet from my file.

type Node struct {
    Left *Node
    Right *Node
    value int
}

func (parent *Node) determineSide(child *Node) (Node, Node) {

    if child.Value < parent.Value {
        if parent.hasLeftNode() {
            return parent.Left.determineSide(child)
        }
        return parent.addLeftNode(child)

    } else if child.Value > parent.Value {
        if parent.hasRightNode() {
           return parent.Right.determineSide(child)
        }
        return parent.addRightNode(child)
    }
    return *child, *parent
 }
parent.Left*parent.Left&parent.Left
structthis.child.determineSide(child)

Full code is here.

Edit

Here is some output from the terminal that might give even further context. Looks like I'm having a check type issue leading to the problem.

parent &{<nil> <nil> 2}
parent.Left <nil>
parent.LeftNode true
child &{<nil> <nil> 1}
parent <nil>
child &{<nil> <nil> 1}