LeetCode 103. Binary Tree Zigzag Level Order Traversal
LeetCode 103. Binary Tree Zigzag Level Order Traversal
Solution1:基于层次遍历的微改
/*** 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;vector<int> temp;queue<TreeNode* > my_que; //队列用来暂时存储二叉树节点my_que.push(root);int cur = 1, next = 0, symbol = 0;while (!my_que.empty()) {temp.push_back(my_que.front()->val);cur--;if (my_que.front()->left) {my_que.push(my_que.front()->left);next++;}if (my_que.front()->right) {my_que.push(my_que.front()->right);next++;}my_que.pop();if (cur == 0) {if (symbol % 2 == 1) {reverse(temp.begin(), temp.end());res.push_back(temp);} else res.push_back(temp);temp.clear();cur = next;next = 0;symbol++;}}return res;}
};
Solution2:用两个栈来保存数据,时间复杂度为O(n)O(n)O(n)
/*** 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 == NULL)return res;vector<int> temp;stack<struct TreeNode* > stack_node[2];//栈数组,数组的每个元素均是栈,栈的数据类型是TreeNode*int cur = 0, next = 1;stack_node[cur].push(root);while(!stack_node[0].empty() || !stack_node[1].empty()) {temp.push_back(stack_node[cur].top()->val);if(cur == 0) {if(stack_node[cur].top()->left != NULL)stack_node[next].push(stack_node[cur].top()->left);if(stack_node[cur].top()->right != NULL)stack_node[next].push(stack_node[cur].top()->right);} else {if(stack_node[cur].top()->right != NULL)stack_node[next].push(stack_node[cur].top()->right);if(stack_node[cur].top()->left != NULL)stack_node[next].push(stack_node[cur].top()->left);}stack_node[cur].pop();if(stack_node[cur].empty()) {res.push_back(temp);temp.clear();cur = 1 - cur;next = 1 - next;}}return res;}
};
LeetCode 103. Binary Tree Zigzag Level Order Traversal相关推荐
- LeetCode: 103. Binary Tree Zigzag Level Order Traversal
题目 Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left ...
- leetcode103JAVA_[LeetCode] 103. Binary Tree Zigzag Level Order Traversal Java
题目: Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from lef ...
- [leetcode] 103. Binary Tree Zigzag Level Order Traversal @ python
原题 Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left ...
- 【Breadth-first Search 】103. Binary Tree Zigzag Level Order Traversal
输入:一颗二叉树 输出:这棵树的之字形层次遍历. 规则:之字形层次遍历是指第一层从左到右遍历,第二层从右到左遍历. 分析:这与102的区别就是有从左到右,从右到左遍历的交替过程.我们习惯从左到右遍历. ...
- LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)
103. 二叉树的锯齿形层次遍历 103. Binary Tree Zigzag Level Order Traversal 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再 ...
- leetcode【102,103】Binary Tree Level Order Traversal Binary Tree Zigzag Level Order Traversal
问题描述(102): Given a binary tree, return the level order traversal of its nodes' values. (ie, from lef ...
- Binary Tree Zigzag Level Order Traversal
跟之前的解法一模一样Binary Tree Level Order Traversal I,II 不赘述 public class Solution {public ArrayList<Arr ...
- leetcode第一刷_Binary Tree Zigzag Level Order Traversal
以出现的频率来看.树的层序遍历一定是考察的重点,除非工作人员想找题水数量. zigzag,还是有几道题的,层序的这个非常easy,假设是奇数层.reverse下面就可以.无他.我写的时候预计还不知道这 ...
- LeetCode: 107. Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
最新文章
- CMPB 2021|U-Net:又一魔改U-Net应用于腹部肝脏分割任务!
- Qt中标准对话框实例,QObject::tr()的作用
- 软件工程导论 银行储蓄系统_银行计算机储蓄系统
- 遗传算法各Matlab工具箱简介
- Eclipse的maven插件最新地址
- [vue] vue中什么是递归组件?举个例子说明下?
- bootstrap在iframe框架中实现由子页面在顶级页面打开模态框(modal)
- linux下基于源码软件安装的那些事
- 出版物发行单位是指哪些_上海办理出版物经营许可证都需要哪些手续和资料?...
- JSP的JavaBean前的知识点
- 连不上网_技术丨电脑连不上网,我要如何冲浪?
- 怎样让git不用每次输入密码_不用输入WIFI密码 “一碰连”就能上网
- Android 自定义表格(第一行及第一列固定,其他列可滑动)
- 品牌设计与VI设计的不同之处
- Maximum Clique最大团问题
- 【原创】基于.NET的轻量级高性能 ORM - TZM.XFramework
- C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
- 计算机出现蓝屏怎么解决,教你电脑出现蓝屏是怎么回事
- 计算机应用基础练习题题(史上最全)
- using的三种用法
热门文章
- Windows7查看无线网络密码
- YOLO系列专题——YOLOv3理论篇
- 谜底是计算机的谜语英语,英语谜语(Riddle) 谜底
- 中海达数据怎么转rinex_Ashtech格式转换RINEX
- mysql序列化字段反序列化_序列化serialize()与反序列化unserialize()的实例
- linux程序中expr是什么意思,Linux中expr命令 (转)
- linux开发 stc_Linux环境下搭建STC单片机平台的指南
- java定义一个空数组_一个 Java 方法,最多能定义多少参数?
- bat 等待输入_深蓝词库转换 - 简单的输入法词库转换工具
- 多个select count 合并_Milvus查询合并机制