leetcode 103. 二叉樹的鋸齒形層序遍歷 BFS方法
102題為本題的“先導題”,102題解答中的表述本題解答不再贅述
https://blog.csdn.net/weixin_50791900/article/details/111569831
在102題的基礎上,僅需考慮逆序遍歷的層
在此我運用了level變數記錄該層是否需要倒序遍歷
初始設為0,每遍歷一層加一(同樣是記錄二叉樹的深度)
奇數層需要逆序
原來的遍歷順序無需改變
僅需要在逆序便利的層中將值在列表頭插入
在這裡我運用的insert方法在0位插入實現的逆序插入的效果
class Solution:
def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return[]
ans = []
a = collections.deque()
a.append(root)
level = 0
while a:
n = len(a)
b = []
for i in range(n):
node = a.popleft()
if level % 2 == 0:
b.append(node.val)
if level % 2 != 0:
b.insert(0, node.val)
if node.left:
a.append(node.left)
if node.right:
a.append(node.right)
level += 1
ans.append(b)
return ans
相關文章
- LeetCode102.二叉樹的層序遍歷LeetCode二叉樹
- LeetCode-107-二叉樹的層序遍歷 IILeetCode二叉樹
- 二叉樹的層序遍歷二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- Leetcode 演算法題解系列 - 二叉樹的層序遍歷LeetCode演算法二叉樹
- Leetcode——94.二叉樹的中序遍歷LeetCode二叉樹
- [Leetcode]102.二叉樹的層次遍歷LeetCode二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- python-二叉樹:前、中、後、層序遍歷Python二叉樹
- 二叉樹--後序遍歷二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- 二叉樹的按層遍歷二叉樹
- [資料結構] BFS演算法實現層序遍歷輸出一顆二叉樹資料結構演算法二叉樹
- 二叉樹遍歷順序與方法小結二叉樹
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- leetcode 102 劍指Offer 32 二叉樹的層次遍歷LeetCode二叉樹
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 【LeetCode-二叉樹】二叉樹前序遍歷LeetCode二叉樹
- 【C++】返回每一層二叉樹的平均值(層序遍歷)C++二叉樹
- 二叉樹遍歷方法二叉樹
- 程式碼隨想錄演算法訓練營day14 | leetcode 144. 二叉樹的前序遍歷、145. 二叉樹的後序遍歷、94. 二叉樹的中序遍歷演算法LeetCode二叉樹
- 二叉樹的先中後序遍歷二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 二叉樹的前中後序遍歷二叉樹
- leetcode----給定一個二叉樹,返回該二叉樹由底層到頂層的層序遍歷,(從左向右,從葉子節點到根節點,一層一層的遍歷)LeetCode二叉樹
- LeetCode-106-從中序與後序遍歷序列構造二叉樹LeetCode二叉樹
- Leetcode——144. 二叉樹的前序遍歷LeetCode二叉樹
- 遞迴和迭代實現二叉樹先序、中序、後序和層序遍歷遞迴二叉樹
- [LintCode]BinaryTreeLevelOrderTraversal(二叉樹的層次遍歷)二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- 102、二叉樹的層序遍歷 | 演算法(leetcode,附思維導圖 + 全部解法)300題二叉樹演算法LeetCode
- LeeCode-94. 二叉樹的中序遍歷二叉樹
- 94. 二叉樹的中序遍歷(迭代)二叉樹
- 二叉搜尋樹的後序遍歷序列
- 二叉樹中序和後序遍歷表示式二叉樹
- 388,先序遍歷構造二叉樹二叉樹
- 非遞迴先序遍歷二叉樹遞迴二叉樹