<script>
function createNode(data) {
return {
data: data||null,
left: null,
right:null
}
}
var tree = {
data: 1,
left: {
data: 2,
left: {
data:3
},
right:{
data:5,
left: {
data:8
}
}
},
right: {
data: 4,
left: {
data: 5
},
right: {
data: 15
}
}
};
var newTree = createNode();
var curNode = newTree; //臨時節點
rec(tree);
function rec(node) {
if (node) {
curNode.data = node.data
}else{
return;
}
if (node.left) {
curNode.left = createNode(node.left.data);
curNode = curNode.left
rec(node.left);
}
if (node.right) {
curNode.right = createNode(node.right.data);
curNode = curNode.right
rec(node.right);
}
}
</script>
思路是:記住節點的指針,順序拷貝。