下記のコードを実行すると
panic: runtime error: invalid memory address or nil pointer dereferenceが発生します。
これは、Insert()が返す*NodeのLeftがnilになっているからだと思うのですが、
Node.Leftがnilにならないようにするにはどうすればいいのでしょうか?


package main

type Node struct {
    Value               int
    Left, Right, Parent *Node
}

func (n *Node) Insert(num int) *Node {

    if num > n.Value {
        n.Left.Value = num
        n.Left.Parent = n
    } else if num < n.Value {
        n.Right.Value = num
        n.Right.Parent = n
    }
    return n
}

func main() {
    root := &Node{Value: 1264523}
    root.Insert(222222)
}