103. 二叉树的锯齿形层次遍历/102. 二叉树的层序遍历
2020-05-24
1.题目描述
二叉树的锯齿形层次遍历
2.题解
对于层次遍历而言,就是广度优先,由于题目要求奇数层逆序,我们可以
1)使用双端队列,奇偶性不同,则出入队列方式不同。
2)对于偶数节点,可以将当前层所得的结果逆序。
3.代码
103
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {vector<vector<int>> res;if (!root) return res;deque<TreeNode*> myque;myque.push_back(root);int height=1;while (!myque.empty()){int cnt=myque.size(); // 当前层的节点数vector<int> tmp;while (cnt--){if (height&1){ // 如果是奇数层TreeNode *p=myque.front();myque.pop_front();tmp.push_back(p->val);if (p->left) myque.push_back(p->left);if (p->right) myque.push_back(p->right);}else{TreeNode *p=myque.back();myque.pop_back();tmp.push_back(p->val);if (p->right) myque.push_front(p->right);if (p->left) myque.push_front(p->left);}}height++;res.push_back(tmp);}return res;}
};
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {vector<vector<int>> res;if (!root) return res;queue<TreeNode*> myque;myque.push(root);int height=1;while (!myque.empty()){int cnt=myque.size(); // 当前层的节点数vector<int> tmp;while (cnt--){TreeNode *p=myque.front();myque.pop();tmp.push_back(p->val);if (p->left) myque.push(p->left);if (p->right) myque.push(p->right);}if (!(height&1)){ // 表明是偶数层 reverse(tmp.begin(),tmp.end());}height++;res.push_back(tmp);}return res;}
};
102
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> res;if (!root) return res;queue<TreeNode*> myque;myque.push(root);while (!myque.empty()){int cnt=myque.size(); // 当前层的节点数vector<int> tmp;while (cnt--){TreeNode* p=myque.front();myque.pop();tmp.push_back(p->val);if (p->left) myque.push(p->left);if (p->right) myque.push(p->right);}res.push_back(tmp);}return res;}
};
103. 二叉树的锯齿形层次遍历/102. 二叉树的层序遍历相关推荐
- LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)
103. 二叉树的锯齿形层次遍历 103. Binary Tree Zigzag Level Order Traversal 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再 ...
- lintcode二叉树的锯齿形层次遍历 (双端队列)
题目链接: http://www.lintcode.com/zh-cn/problem/binary-tree-zigzag-level-order-traversal/ 二叉树的锯齿形层次遍历 给出 ...
- 103.二叉树的锯齿形层次遍历:DFS解法
Time: 20190830 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,n ...
- 【Leetcode】103. 二叉树的锯齿形层次遍历
题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...
- 【LeetCode】103# 二叉树的锯齿形层次遍历
题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], ...
- 103. 二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...
- LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)
1. 题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7] ...
- leetcode 103. 二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3/ \ ...
- 二叉树的锯齿形层次遍历—leetcode103
给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3/ \ ...
最新文章
- 企业级微服务框架落地
- SQL面试题: 数据库中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列 ,当B列大于C列时选择B列否则选择C列 ,...
- matlab 多项式拟合 ployval
- Java入门之初识设计模式---单列模式
- 远离客户陷阱小故事 转
- Handler基本概念
- python三维网格图_python-3D网格之间的Hausdorff距离
- python map函数1分钟数据生成5分钟_用map函数来完成Python并行任务的简单示例
- 混凝土弹性波速计算公式_混凝土强度与应力波速相关性研究
- 事件管理和问题管理,配置管理和变更管理的区别
- 微信H5开发问题集锦
- 30字的完美个人简历
- python3的print()函数的用法图文讲解
- 基于rdkit将smiles转换为smarts
- 重装系统要花钱?教你免费一键重装win10系统
- 共享电单车属于哪个部门管理_对小区物业服务不满找谁投诉?哪个部门负责管理...
- java jts点到面的距离_jts-空间索引
- c#使用PortableDeviceApiLib读取便携式设备(WPD:Windows Portable Devices)信息
- matlab数据格式转换
- CesiumforUnrealQuickstart_译
热门文章
- python while循环if_python – 使用if语句时陷入while循环
- Gaze Estimation笔记——data normalization
- 送你一个在线机器学习网站,真香!
- 深度综述|基因与疾病关系研究的百年进展
- ImageGP新上几个小工具
- FCPX Full Access - Titles Bundle for Mac FCPX标题字幕插件捆绑包
- NOI图论算法:网络流
- 第4课 防卫导弹(第十章 动态规划--DP)
- 【chorme插件开发】第三节:开发html的展示类型插件实例
- android textview 背景图片,Android—TextView 背景颜色与背景图片设置