LeetCode 103. Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:php setslaveokay 编辑:程序博客网 时间:2024/06/10 18:00
103. Binary Tree Zigzag Level Order Traversal
Given a binary tree, return the zigzag level order traversal of its nodes values. (ie, from left to right, then right to left for the next level and alternate between).
For example:
Given binary tree {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its zigzag level order traversal as:
[
[3],
[20,9],
[15,7]
]
分析:和层序遍历一样的代码,只需要加几行代码就行~~~因为要之字型存储这个二叉树~~~所以只不过在行数为双数的时候需要对当前行进行一次所有元素的倒置~可以用stack也可以用数组头尾两两交换的方法~~只需要在存入二维数组vector<vector> v之前倒置好row数组,再push_back到v里面就行~
Given a binary tree, return the zigzag level order traversal of its nodes values. (ie, from left to right, then right to left for the next level and alternate between).
For example:
Given binary tree {3,9,20,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its zigzag level order traversal as:
[
[3],
[20,9],
[15,7]
]
分析:和层序遍历一样的代码,只需要加几行代码就行~~~因为要之字型存储这个二叉树~~~所以只不过在行数为双数的时候需要对当前行进行一次所有元素的倒置~可以用stack也可以用数组头尾两两交换的方法~~只需要在存入二维数组vector<vector> v之前倒置好row数组,再push_back到v里面就行~
/** * 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<int> row; vector<vector<int>> v; queue<TreeNode *> q; if(root == NULL) return v; q.push(root); TreeNode *temp; int lev = 0; while(!q.empty()) { int size = q.size(); while(size--) { temp = q.front(); q.pop(); row.push_back(temp->val); if(temp->left != NULL) { q.push(temp->left); } if(temp->right != NULL) { q.push(temp->right); } } if(lev % 2) { int n = row.size(); for(int i = 0; i < n/2; i++) { swap(row[i], row[n-i-1]); } } v.push_back(row); lev++; row.clear(); } return v; }};
0 0
- LeetCode: Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- 【leetcode】Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- [Leetcode]Binary Tree Zigzag Level Order Traversal
- [leetcode]Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode-Binary Tree Zigzag Level Order Traversal
- [leetcode] Binary Tree Zigzag Level Order Traversal
- LeetCode - Binary Tree Zigzag Level Order Traversal
- LeetCode:Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- Android适配——采用Values-dpi-wSize X hSize 模式,并分析原理
- 考研路茫茫——空调教室
- Java去掉字符串中所有的标签,获取纯文本内容,获取src
- Activiti删除测试数据(存储过程,手动SQL两种方法)
- Devstack快速部署OpenStack Mitaka用户指南(by qiqishuang csdn)
- LeetCode 103. Binary Tree Zigzag Level Order Traversal
- LeetCode199. Binary Tree Right Side View
- 关于原生js的一些研究
- LeetCode上Tag为广度优先搜索BFS(Breadth-first Search)的题目整理
- 【汇编】JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
- LeetCode 3. Longest Substring Without Repeating Characters
- ftp 实现文件的上传下载以及列出文件列表Java代码
- EM算法(2)
- LeetCode上Tag为贪心算法(Greedy)的题目整理