日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[LeetCode] 102. Binary Tree Level Order Traversal_Medium tag: BFS

發(fā)布時(shí)間:2025/5/22 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [LeetCode] 102. Binary Tree Level Order Traversal_Medium tag: BFS 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Given a binary tree, return the?level order?traversal of its nodes' values. (ie, from left to right, level by level).

For example:
Given binary tree?[3,9,20,null,null,15,7],

3/ \9 20/ \15 7

?

return its level order traversal as:

[[3],[9,20],[15,7] ]

這個(gè)題目非常明顯的適用BFS, 從root, 依次將每一層append進(jìn)入ans里, 只是要注意的就是如果判斷哪個(gè)是在哪一層呢, 這里用到的方法是利用size of queue, 每次得到的size就是該層的數(shù)目,
每層用一個(gè)temp list去存每一層的元素, 結(jié)束之后append進(jìn)入ans中.


1. Constraints
1) tree 可以為empty, 所以edge case 為root == None

2. Ideas

BFS T: O(n) S: O(n) n is number of nodes in the tree


3. code import collections class Solution:def levelOrder(self, root):""":type root: TreeNode:rtype: List[List[int]]"""if not root: return []ans, queue = [], collections.deque([root])while queue:size, level = len(queue), []for _ in range(size):node = queue.popleft()level.append(node.val)if node.left:queue.append(node.left)if node.right:queue.append(node.right)ans.append(level)return ans

?

?

4. Test cases

1) None? ?=>? ?[]

2) [1]? ? =>? [[1]]

3)?

Given binary tree?[3,9,20,null,null,15,7],

3/ \9 20/ \15 7

?

return its level order traversal as:

[[3],[9,20],[15,7] ]

轉(zhuǎn)載于:https://www.cnblogs.com/Johnsonxiong/p/9261520.html

總結(jié)

以上是生活随笔為你收集整理的[LeetCode] 102. Binary Tree Level Order Traversal_Medium tag: BFS的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。