看了python中隊列和棧的一些相關信息,看到很多人說列表其實就可以實現隊列和棧的特點,手動試了一下,還真是,在此做一個記錄,用列表來實現二叉樹的按層級遍歷
思路:將二叉樹的根節點扔進列表中作爲第一個元素,刪除第一個元素並打印,同時將第一個元素的左節點和右節點添加到列表的尾部,循環如此,直至列表中所有的元素都打印完畢,代碼實現如下:
def level(head): list = [] if head: list.append(head) while len(list)>0: node = list.pop(0) print(node.data) if node.left: list.append(node.left) if node.right: list.append(node.right)