private void button1_Click( object sender, EventArgs e )
{
    List<TreeNode> lst = new List<TreeNode>();
    foreach( TreeNode node in this.treeView1.Nodes )
    {
        lst.Add( node );
    }

    BinaryFormatter bf = new BinaryFormatter();
    using( FileStream fs = new FileStream( "unko.dat", FileMode.Create ) )
    {
        bf.Serialize( fs, lst );
    }
}

private void button3_Click( object sender, EventArgs e )
{
    BinaryFormatter bf = new BinaryFormatter();
    List<TreeNode> lst;
    using( FileStream fs = new FileStream( "unko.dat", FileMode.Open ) )
    {
        lst = (List<TreeNode>)bf.Deserialize( fs );
    }
    this.treeView1.Nodes.AddRange( lst.ToArray() );
}