欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 【LeetCode】每日一题:二叉树的锯齿形层序遍历

【LeetCode】每日一题:二叉树的锯齿形层序遍历

2025/5/19 22:39:23 来源:https://blog.csdn.net/qq_44459787/article/details/140006536  浏览:    关键词:【LeetCode】每日一题:二叉树的锯齿形层序遍历

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

解题思路

python列表可以很简单用reverse,remove的方法来实现双向队列,所以很简单

AC代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root:return []queue = [root]flag = Trueres = []while queue:templist = []if flag:length = len(queue)for _ in range(length):temp = queue[0]templist.append(temp.val)if temp.left: queue.append(temp.left)if temp.right: queue.append(temp.right)queue.remove(temp)flag = not flagelse:length = len(queue)for i in range(length - 1, -1, -1):temp = queue[i]templist.append(temp.val)if temp.right: queue.append(temp.right)   if temp.left: queue.append(temp.left)queue.remove(temp)queue.reverse()flag = not flagres.append(templist)return res

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词