python 二叉樹遍歷 DFS和BFS
阿新 • • 發佈:2018-11-07
檢查python 版本
import sys
print(sys.version)
print(sys.version_info )
-
mac
python 自己寫的資料結構在 Documents/data_structure/python中
Documents/data_structure/cpp/LeetCode
sublime annaconda 3.6.5
pycharm /usr/local/Cellar/python3/3.6.1 -
linux機器
給出樹的節點
class TreeNode: def __init__(self,x): self.val=x self.left=None self.right=None
題目
輸入:
### A
# / \
# B C
# / \ / \
# D E F G
# / \
# H I
輸出:
# LayerOrder:
# A
# BC
# DEFG
樹的結構儲存
python中如何儲存樹?
BFS 廣度優先遍歷
BFS用到的資料結構是quene
def bfs(self,root): # 傳入樹的根節點 quene=[] q.append(root) while len(q)!=0: every_layer=[] length=len(q) for i in range(length): r=q.pop(0) if not r.left is None: q.append(r.left) if not r.right is None: q.append(r.right) every_layer.append(r.val) print every_layer print ' ' result.append(every_layer)