LeetCode算法题目:Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:mac可以玩lol 编辑:程序博客网 时间:2024/04/29 20:07
题目:
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,null,null,15,7],
return its zigzag level order traversal as:[3], [20,9], [15,7]]
分析:
此题所谓的Zig-Zag 遍历,及第一行从左到有,第二行从右到左,第三行从左到右,依次类推。此题仍然可以在层次遍历后,对结果进行处理。
代码:
/** * 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>>result; if (!root) return result; queue<TreeNode*> vec; vec.push(root); while (vec.size() > 0) { queue<TreeNode*> tmp_vec; vector<int> tmp_result; while (vec.size() > 0) { TreeNode* node = vec.front(); vec.pop(); if (node->left) tmp_vec.push(node->left); if (node->right) tmp_vec.push(node->right); tmp_result.push_back(node->val); } vec = tmp_vec; result.push_back(tmp_result); } //对第2层、4层。。。进行翻转 for (int i = 1; i < result.size(); i += 2) { reverse(result[i].begin(), result[i].end()); } return result; } };
1 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
- SDK 嵌入问题记录
- JAVA WEB从入门到精通 day19 Listener监听器
- [BZOJ2565]最长双回文串(manacher)
- PCI总线驱动程序设计
- Java static关键字--String类--StringBuilder等
- LeetCode算法题目:Binary Tree Zigzag Level Order Traversal
- MultiNET环境搭建中Cython问题处理
- Color过渡动画
- 2016蓝桥杯省赛 交换瓶子
- html 常用表单元素
- PGN详解
- Maven实用详解
- HDFS读书笔记-了解NameNode
- Asteroids (三维凸包+重心)