如何複製二叉樹 python

2021-09-12 17:44:52 字數 917 閱讀 7366

題目描述:給定乙個二叉樹根節點,複製該樹,返回新建樹的根節點。

分析與解答:用給定的二叉樹的根節點root來構造新的二叉樹的方法為:首先建立新的結點duptree,然後根據root結點來構造duptree結點,最後分別用root的左右子樹來構造duptree的左右子樹。根據這個思路可以實現二叉樹的複製,使用遞迴方式實現的**如下:

class bitnode:

def __init__(self):

self.data = none

self.lchild = none

self.rchild = none

def createduptree(root):

if root == none:

return none

# 二叉樹根結點

duptree = bitnode()

duptree.data = root.data

# 複製左子樹

duptree.lchild = createduptree(root.lchild)

# 複製右子樹

duptree.rchild = createduptree(root.rchild)

return duptree

def printtreemidorder(root):

if root == none:

return

# 遍歷root結點的左子樹

if root.lchild != none:

printtreemidorder(root.lchild)

# 遍歷root結點的右子樹

if root.rchild != none:

printtreemidorder(root.rchild)

print(root.data)

Python演算法 如何複製二叉樹

給定乙個二叉樹,複製該樹 複製一顆二叉樹,先複製其根結點,再複製左子樹,最後複製右子樹,從而複製完成 coding utf 8 class bitnode def init self self.data none self.lchild none self.rchild none def creat...

複製二叉樹

複製一棵二叉樹的非遞迴演算法 include include include using namespace std typedef struct btnode bitree bitree creat bt return t 遞迴複製,不分配空間 void copytree bitree t,bit...

python 二叉樹查詢 Python二叉樹搜尋

stack depth is initialised to 0 def find in tree node,find condition,stack depth assert stack depth max stack depth deeper than max depth stack depth ...