測試用二叉樹生成代碼

在005裏給的任務

能用就行啦。
嘗試以後加入單元測試模塊

class TreeNode(object):
    def __init__(self, val):
        self.val = val
        self.left = None
        self.right= None

def generateTree(dList = []):
    if dList == []:
        return None
    root = TreeNode(dList[0])
    queue = [root]
    counter = 1
    for node_parent in queue:
        # 左側節點
        if counter < len(dList):
            if dList[counter] != None:
                node_left = TreeNode(dList[counter])
                queue.append(node_left)
            else:
                node_left = None
        else:
            node_left = None
        counter += 1
        # 右側節點
        if counter < len(dList):
            if dList[counter] != None:
                node_right = TreeNode(dList[counter])
                queue.append(node_right)
            else:
                node_right = None
        else:
            node_right = None
        counter += 1
        node_parent.left = node_left
        node_parent.right = node_right
    return root

def bfs(root):
    queue = [root]
    # 直接用in遍歷列表就可以實現隊列的效果
    for i in queue:
        if i.left != None:
            queue.append(i.left)
        if i.right!= None:
            queue.append(i.right)
    return queue
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章