数据结构题目47:二叉树的复制
2020-05-12 本文已影响0人
玲儿珑
题目:复制一棵二叉树。
解题思路:可以利用二叉树的前序遍历算法达到目的。这里,假设经过复制以后产生的二叉树的根结点指针由T2表示。二叉树复制的操作过程可以描述如下:
1、若二叉树为空,则返回空指针。
2、若二叉树非空,则复制根结点,并将根结点指针赋给T2;然后复制根结点的左子树,并将左子树的根结点指针赋予T2->lchild;接着复制根结点的右子树,并将右子树的根结点指针赋予T2->rchild;最后返回经复制得到的二叉树的根结点指针。
复制的算法如下:
这里使用到建立二叉树buildBT()
function copyTree(T1) {
let T2
if ( T1==null ) {
return null
} else {
T2 = new Node()
T2.data = T1.data
T2.lchild = copyTree(T1.lchild)
T2.rchild = copyTree(T1.rchild)
}
return T2
}
var str = "ABC DE F G "
var ch = ''
var len = str.length, i=0
var T = buildBT()
copyTree(T)