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
相關文章
- 層序遍歷二叉樹二叉樹
- 二叉樹的層序遍歷二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- LeetCode-107-二叉樹的層序遍歷 IILeetCode二叉樹
- 二叉樹的建立、前序遍歷、中序遍歷、後序遍歷二叉樹
- Leetcode 演算法題解系列 - 二叉樹的層序遍歷LeetCode演算法二叉樹
- 二叉樹建立,前序遍歷,中序遍歷,後序遍歷 思路二叉樹
- 建立二叉樹:層次遍歷--樹的寬度高度,後序遍歷--祖先節點二叉樹
- Leetcode——94.二叉樹的中序遍歷LeetCode二叉樹
- 二叉樹--後序遍歷二叉樹
- 二叉樹的按層遍歷二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- [資料結構] BFS演算法實現層序遍歷輸出一顆二叉樹資料結構演算法二叉樹
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- 二叉樹遍歷順序與方法小結二叉樹
- python-二叉樹:前、中、後、層序遍歷Python二叉樹
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 二叉樹遍歷方法二叉樹
- 【C++】返回每一層二叉樹的平均值(層序遍歷)C++二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 二叉樹的先中後序遍歷二叉樹
- 二叉樹的前中後序遍歷二叉樹
- 3143 二叉樹的序遍歷二叉樹
- [Leetcode]102.二叉樹的層次遍歷LeetCode二叉樹
- 非遞迴遍歷二叉樹的四種策略-先序、中序、後序和層序遞迴二叉樹
- 遞迴和迭代實現二叉樹先序、中序、後序和層序遍歷遞迴二叉樹
- LintCode 前序遍歷和中序遍歷樹構造二叉樹二叉樹
- 資料結構與演算法——二叉樹的前序遍歷,中序遍歷,後序遍歷資料結構演算法二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- 【LeetCode-二叉樹】二叉樹前序遍歷LeetCode二叉樹
- leetcode----給定一個二叉樹,返回該二叉樹由底層到頂層的層序遍歷,(從左向右,從葉子節點到根節點,一層一層的遍歷)LeetCode二叉樹
- 94. 二叉樹的中序遍歷(迭代)二叉樹
- 二叉樹中序和後序遍歷表示式二叉樹
- 非遞迴先序遍歷二叉樹遞迴二叉樹
- 388,先序遍歷構造二叉樹二叉樹
- 根據前序遍歷序列、中序遍歷序列,重建二叉樹二叉樹
- 二叉樹的層序遍歷詳細講解(附完整C++程式)二叉樹C++