Java实现 LeetCode 103 二叉树的锯齿形层次遍历
2024-10-09 03:51:07
103. 二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回锯齿形层次遍历如下:
[
[3],
[20,9],
[15,7]
]
class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> res = new ArrayList<>();
traversal(root, res, 0);
return res;
}
private void traversal(TreeNode root, List<List<Integer>> res, int level) {
if (root == null) {
return;
}
if (res.size() == level) {
res.add(new ArrayList<Integer>());
}
if ((level & 1) == 1){
res.get(level).add(0, root.val);
} else {
res.get(level).add(root.val);
}
traversal(root.left, res, level + 1);
traversal(root.right, res, level + 1);
}
}
最新文章
- Struts2基础数据校验和框架校验
- Excel 如何按条件计数和按条件求和(如按月求和)
- whereis命令
- 关于SOAP
- UI进阶 动画
- 多核处理器基础SMP&;AMP&;BMP
- 每天一个Linux命令(13)--less命令
- 201521123111《Java程序设计》第7周学习总结
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
- MySQL的insert ignore与replace into不同
- 使用筛选器特性标记方法解决webapi 跨域问题
- 【HDU 2063】过山车(二分图最大匹配模板题)
- ISLR系列:(2)分类 Logistic Regression &; LDA &; QDA &; KNN
- 第五节,python基本语法
- bpmn-js起步
- python 12 模块与包
- 写了2年python,知道 if __name__ == &#39;__main__&#39; 什么意思吗?
- [原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied
- a demo for how to use QThread
- 解决Ubuntu16的风扇高速旋转问题(双显卡)
热门文章
- BufferedInputStream:字节缓冲输入流
- HBuilderX 打包 uniapp 项目 图片路径不显示(不正确)
- [hdu3644 A Chocolate Manufacturer&#39;s Problem]模拟退火,简单多边形内最大圆
- SQLServer用with temptb AS临时表查询或者更新字段,将某个字段赋值成某个字段的值
- post请求导出表单。
- 使用gitHub和git进行团队合作开发
- Django之forms.Form
- 解决删除~/Library/Caches/CocoaPods/search_index.json重新pod search还是不起作用
- PAT-1064 Complete Binary Search Tree(完全二叉树)
- POJ1436