Python刷leetcode 102. 二叉樹的層次遍歷
阿新 • • 發佈:2019-02-04
給定一個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。
例如:
給定二叉樹: [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回其層次遍歷結果:
[ [3], [9,20], [15,7] ]
思路:用佇列實現
1、root為空,則返回空表
2、佇列不為空,記下此時佇列中的結點個數temp,temp個結點出佇列的同時,記錄結點值,並把結點的左右子結點加入佇列
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def levelOrder(self, root): """ :type root: TreeNode :rtype: List[List[int]] """ queue = [root] res = [] if not root: return [] while queue: templist = [] templen =len(queue) for i in range(templen): temp = queue.pop(0) templist.append(temp.val) if temp.left: queue.append(temp.left) if temp.right: queue.append(temp.right) res.append(templist) return res