I want to suggest another solution https://github.com/nerd220/JSONext
It allows you to easily serialize objects, saving internal and external links, methods and prototypes.
In subject case:
var node1={data: 'some data'};
var node2={data: 'else data');
node1.link=node2;
node2.link=node1;
var tree={node1: node1, node2: node2};
var serialize=toLinkedJSON(tree);
var newTree=fromLinkedJSON(serialize);
console.log(newTree.node1.link==newTree.node2);//true, because links are saved