ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【LeetCode刷题-树】-- 103.二叉树的锯齿形层序遍历

2026/9/12 5:22:36 拓冰建站 浏览量
【LeetCode刷题-树】-- 103.二叉树的锯齿形层序遍历

103.二叉树的锯齿形层序遍历

image-20231211103412729

方法:广度优先搜索

/*** 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 List<List<Integer>> zigzagLevelOrder(TreeNode root) {//利用广度优先搜索List<List<Integer>> ans = new LinkedList<List<Integer>>();if(root == null){return ans;}Queue<TreeNode> queue = new LinkedList<>();  //定义一个队列queue.offer(root);boolean isLeft = true;while(!queue.isEmpty()){Deque<Integer> levelList = new LinkedList<>();int size = queue.size();for(int i = 0 ;i < size;i++){TreeNode curNode = queue.poll();if(isLeft){levelList.offerLast(curNode.val);}else{levelList.offerFirst(curNode.val);}if(curNode.left!=null){queue.offer(curNode.left);}if(curNode.right!=null){queue.offer(curNode.right);}}ans.add(new LinkedList<Integer>(levelList));isLeft = !isLeft;}return ans;}}