文件名称:leetcode答案-leetcode:刷题记录
文件大小:36KB
文件格式:ZIP
更新时间:2024-07-19 19:27:26
系统开源
leetcode 答案 leetcode刷题记录 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果: [ [3], [20,9], [15,7] ] 思路: 特例处理: 当树的根节点为空,则直接返回空列表 [] ; 初始化: 打印结果列表 res = [] ,包含根节点的队列 queue = [root] ; BFS 循环: 当队列 queue 为空时跳出; 新建一个临时列表 tmp ,用于存储当前层打印结果; 当前层打印循环: 循环次数为队列 queue 长度(队列中元素为所有当前层节点); 出队: 队首元素出队,记为 node; 打印: 将 node.val 添加至列表 tmp 尾部; 添加子节点: 若 node 的左(右)子节点不为空,则将左(右)子节点加入队列 queue ; 偶数层倒序: 若 res 的长度为 奇数 ,说明当前是偶数层,则对 tmp 执行 倒序 操作。 将当前层结果 tmp 添加
【文件预览】:
leetcode-master
----102-二叉树的层序遍历.py(1KB)
----5.py(367B)
----20.py(2KB)
----17.py(2KB)
----23.py(666B)
----11-盛最多水的容器.py(734B)
----1.py(1KB)
----13.py(1KB)
----19.py(2KB)
----15-三数之和.py(2KB)
----11.py(1KB)
----29-前 K 个高频元素.py(1KB)
----7.py(2KB)
----14.py(2KB)
----21.py(1KB)
----2.py(1KB)
----28.py(1KB)
----208-实现 Trie (前缀树).py(2KB)
----4.py(2KB)
----18.py(986B)
----392-判断子序列.py(861B)
----43-字符串相乘.py(2KB)
----21-合并两个有序链表.py(1KB)
----24.py(520B)
----9.py(2KB)
----10.py(1KB)
----16.py(1KB)
----15.py(1KB)
----26.py(2KB)
----12.py(936B)
----3.py(732B)
----.gitignore(7B)
----94-二叉树的中序遍历.py(1KB)
----6.py(2KB)
----17-电话号码的字母组合.py(926B)
----27.py(2KB)
----25.py(995B)
----README.md(8KB)
----utils()
--------__init__.py(123B)
--------dingtalkbot.py(14KB)
----8.py(2KB)
----22.py(2KB)
----1-两数之和.py(705B)
----19-删除链表的倒数第N个节点.py(1KB)