无锡网站建设公司地址,网站开发毕业设计ppt,如何学习wordpress,wordpress图片下一篇#x1f680; 算法题 #x1f680; #x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 #x1f340; #x1f332; 越难的东西,越要努力坚持#xff0c;因为它具有很高的价值#xff0c;算法就是这样✨ #x1f332; 作者简介#xff1a;硕风和炜#xff0c;… 算法题 算法刷题专栏 | 面试必备算法 | 面试高频算法 越难的东西,越要努力坚持因为它具有很高的价值算法就是这样✨ 作者简介硕风和炜CSDN-Java领域优质创作者保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享 恭喜你发现一枚宝藏博主,赶快收入囊中吧 人生如棋我愿为卒行动虽慢可谁曾见我后退一步 算法题 目录 题目链接⛲ 题目描述 求解思路实现代码运行结果⚡ BFS 求解思路 实现代码 运行结果 共勉 题目链接
103. 二叉树的锯齿形层序遍历
⛲ 题目描述
给你二叉树的根节点 root 返回其节点值的 锯齿形层序遍历 。即先从左往右再从右往左进行下一层遍历以此类推层与层之间交替进行。
示例 1
输入root [3,9,20,null,null,15,7] 输出[[3],[20,9],[15,7]] 示例 2
输入root [1] 输出[[1]] 示例 3
输入root [] 输出[]
提示
树中节点数目在范围 [0, 2000] 内 -100 Node.val 100 求解思路实现代码运行结果 ⚡ BFS 求解思路
该题目还是通过BFS来直接遍历二叉树即可该题的改变之处在于即先从左往右再从右往左进行下一层遍历以此类推层与层之间交替进行通过记录一个变量来记录当前层的遍历顺序即可最后要记得更新变量结果。有了基本的思路接下来我们就来通过代码来实现一下。 实现代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public ListListInteger zigzagLevelOrder(TreeNode root) {ListListInteger res new ArrayList();if (root null)return res;QueueTreeNode queue new LinkedList();queue.add(root);boolean flag true;while (!queue.isEmpty()) {int size queue.size();ListInteger list new ArrayList();for (int i 0; i size; i) {TreeNode temp queue.poll();list.add(temp.val);if (temp.left ! null)queue.add(temp.left);if (temp.right ! null)queue.add(temp.right);}if (!flag) {Collections.reverse(list);}flag !flag;res.add(list);}return res;}
}运行结果 共勉
最后我想和大家分享一句一直激励我的座右铭希望可以与大家共勉