代码之家  ›  专栏  ›  技术社区  ›  ishwar

如何复制树进行迭代后序遍历以保护树

  •  1
  • ishwar  · 技术社区  · 5 年前

    迭代后序遍历删除整个树,在Scala中我们有:

    override def clone():BinarySearchTree=
    {
      return new BinarySearchTree(root.clone())
    }
    

    然后我们使用以下方法复制整棵树:

    def postorder(tnode:TreeNode) 
    {    
       var tcnode=tnode.clone
    }
    

    现在tcnode拥有整个树的副本。 但我想在python中使用同样的方法:

    import copy
    def postOrder(self, tnode):
        tcnode = copy.copy(tnode)
    

    但没用。

    1 回复  |  直到 5 年前
        1
  •  1
  •   abhishekh mishra    5 年前

    使用 tcnode=copy.deepcopy(tnode) 因为deepcopy不会更改原始树,但是在您的情况下,您使用的是浅拷贝,在这种情况下,它将更改原始树,以获取有关deepcopy的更多信息 Difference between DeepCopy and Shallow copy