LeetCode:103Binary Tree Zigzag Level Order Traversal
2024-09-01 10:06:04
真是不容易啊,做这道题的时候脑子一团乱,感觉还是得劳逸结合啊。这道题的思想不难,就是宽搜BFS。通过设置一个flag来判断是否需要逆序输出。
我的做法虽然AC,但是觉得代码还是不好,空间占用较多。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> result = new ArrayList< >();
Queue<TreeNode> queue = new LinkedList<>(); if(root == null)
{
return result;
}
queue.add(root);
boolean flag = true;
while (!queue.isEmpty())
{
int i=0;
List<Integer> tempList = new ArrayList<>();
int count = queue.size();
while (i<count) {
TreeNode Node = queue.poll();
tempList.add(Node.val);
if (Node.left != null) {
queue.add(Node.left);
}
if (Node.right != null) {
queue.add(Node.right);
}
i++;
}
if(flag==false)
{
Stack<Integer> tempstack = new Stack<>();
for (Integer tem: tempList
) {
tempstack.push(tem);
}
List<Integer> list2 = new ArrayList<>();
while (!tempstack.isEmpty())
{
list2.add(tempstack.pop());
}
result.add(list2); }
else
{
result.add(tempList);
}
flag=!flag;
}
return result;
}
}
最新文章
- oracle合并版本
- Java链式编程接口
- get 与 post
- android导入项目出现style错误,menu错误
- JSON 与JAVA对象之间的转换(转)
- Codeforces Round #222 (Div. 1) C. Captains Mode 对弈+dp
- raid之理解
- [转]:移动端H5页面高清多屏适配方案
- OpenCV2马拉松第14圈——边缘检測(Sobel,prewitt,roberts)
- FAAC1.28 在海思HI3520D/HI3515A平台linux中的编译 优化
- iOS开发之UIPickerView
- Web自动化框架LazyUI使用手册(8)--excel数据驱动详解(ExcelDataProvider)
- Volley,小并发网络请求的好帮手
- 在java中如何实现字符串的反转
- 第28月第22天 iOS动态库
- html页面调用js文件里的函数报错-->;方法名 is not defined处理方法
- [Hadoop]Hadoop章1 Hadoop原理解析
- Zookeeper Client基础操作和Java调用
- [No0000D2]ClearCSharp编程清理脚本批处理bat
- java BASE64流 输出图片。
热门文章
- win7 64位搭建Mantis 缺陷管理系统(2)
- [poj1144]Network(求割点模板)
- 《精通Spring4.X企业应用开发实战》读后感第四章(资源访问)
- ubuntu18.04安装配置opencv3.4.0
- Mysql深入理解(1)
- Jenkins+Git+Docker+K8s部署
- 服务器安装docker后免除sudo命令
- PAT甲级——1110 Complete Binary Tree (完全二叉树)
- Codeforces 1175E(倍增)
- 用 scp 命令通过 SSH 互传文件