酒店网站的建设,pc网站怎么做自适应,郑州小程序定制,怎样自己做免费的网站2024.2.16 题目来源我的题解方法一 双端队列标志 题目来源
力扣每日一题#xff1b;题序#xff1a;103
我的题解
方法一 双端队列标志 层序遍历 利用双端队列和标志#xff0c;判断当前应该往那个方向遍历 注意#xff1a;在逆向遍历时#xff0c;加入后续节点到队列中… 2024.2.16 题目来源我的题解方法一 双端队列标志 题目来源
力扣每日一题题序103
我的题解
方法一 双端队列标志 层序遍历 利用双端队列和标志判断当前应该往那个方向遍历 注意在逆向遍历时加入后续节点到队列中的顺序需要改变 时间复杂度O(N)其中 N 为二叉树的节点数。每个节点会且仅会被遍历一次。 空间复杂度O(N)。需要维护存储节点的队列和存储节点值的双端队列空间复杂度为 O(N)。 public ListListInteger zigzagLevelOrder(TreeNode root) {ListListInteger resnew ArrayList();if(rootnull)return res;LinkedListTreeNode queuenew LinkedList();queue.addFirst(root);boolean flagfalse;//false表示从右到左true表示从左到右while(!queue.isEmpty()){int szqueue.size();ListInteger listnew ArrayList();for(int i0;isz;i){//从右到左if(!flag){TreeNode tqueue.pollLast();list.add(t.val);if(t.left!null)queue.addFirst(t.left);if(t.right!null)queue.addFirst(t.right);//从左到右}else{TreeNode tqueue.pollFirst();list.add(t.val);//注意存入的顺序需要改变if(t.right!null)queue.addLast(t.right);if(t.left!null)queue.addLast(t.left);}}flag!flag;res.add(list);}return res;
}有任何问题欢迎评论区交流欢迎评论区提供其它解题思路代码也可以点个赞支持一下作者哈~