4.2 leetcode -2 binary-tree-zigzag-level-order-traversal
来源:互联网 发布:乐高42056淘宝 编辑:程序博客网 时间:2024/06/10 02:52
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]
]
confused what"{1,#,2,3}"means? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1
/ \
2 3
/
4
\
5
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]
]
confused what"{1,#,2,3}"means? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1
/ \
2 3
/
4
\
5
The above binary tree is serialized as"{1,2,3,#,#,4,#,#,5}".
这个题目就是让我实战一次分层遍历的,然后至于Z字型,只需要翻转就行了
/** * Definition for binary tree * 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) { queue<TreeNode*> node; vector<vector<int> > vreturn; bool flag = true;//0-left-right int ceil_num = 0; int ceil_numtmp = 0; if(root != NULL ) { ceil_num = 1; node.push(root); } else return vreturn; while(!node.empty()) { vector<int> numvector(ceil_num); for(int i = 0;i < ceil_num;i++) { TreeNode *now = node.front(); numvector[i] = now->val; node.pop(); if(now->left != NULL) { ceil_numtmp ++; node.push(now->left); } if(now->right != NULL) { ceil_numtmp ++; node.push(now->right); } } flag = !flag; if(flag == true) { //reverse for(int i = 0;i < (ceil_num/2);i++) { int tmp = numvector[ceil_num -i - 1]; numvector[ceil_num -i - 1] = numvector[i]; numvector[i] = tmp; } } vreturn.push_back(numvector); ceil_num = ceil_numtmp; ceil_numtmp = 0; } return vreturn; }};
阅读全文
0 0
- 4.2 leetcode -2 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
- 容器中的swap
- UVA
- 有序链表
- 支付宝支付流程指引
- C
- 4.2 leetcode -2 binary-tree-zigzag-level-order-traversal
- ZooKeeper系列(一)
- 拦截器---SpringMVC学习笔记(十四)
- vs dll 使用与explore
- aws WorkMail和SES实战
- Linux下Mysql开启远程访问
- 纸牌博弈问题
- 配置主机和VMware虚拟机进行通信的过程
- 翻硬币