102 二叉树层序遍历
生活随笔
收集整理的這篇文章主要介紹了
102 二叉树层序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
層序遍歷,每次層的輸出是是一個一維數組,整個二叉樹的輸出結果是二維數組
BFS遍歷,依托于隊列結構,每次在根節點出棧的時候,將其值加在結果列表中,然后將他的左右孩子節點入隊列。
層序遍歷相對于BFS,需要知道每一層有多少個節點。
因此,我們需要稍微修改一下代碼,在每一層遍歷開始前,先記錄隊列中的結點數量 nn(也就是這一層的結點數量),然后一口氣處理完這一層的 n 個結點。參考
class Solution:def levelOrder(self, root: TreeNode):r = []if not root:return rquee = [root]while quee:temp = []k = len(quee)# 當前層右多少個節點for i in range(k):root = quee.pop(0)temp.append(root.val)if root.left:quee.append(root.left)if root.right:quee.append(root.right)r.append(temp)return r總結
以上是生活随笔為你收集整理的102 二叉树层序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: if else复合语句
- 下一篇: 类中的函数