数据结构

数据结构题目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)
上一篇 下一篇

猜你喜欢

热点阅读