LeetCode: 103_Binary Tree Zigzag Level Order Traversal | 二叉树Zigzag层次遍历 | Medium
2014-11-27 16:37
603 查看
本题也属于层次遍历的变形,不同之处在于其遍历的方法是交替进行的,形成一个ZigZag的曲线形式,如下:
代码如下:
代码如下:
struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x): val(x), left(NULL),right(NULL) {} }; void Swap(vector<int> &ivec) { int temp = 0; int len = ivec.size(); for (int i = 0; i < len/2; i ++) { temp = ivec.at(i); ivec.at(i) = ivec.at(len-1-i); ivec.at(len-1-i) = temp; } } vector<vector <int> > zigzagLevelOrder(TreeNode *root) { vector<vector<int> > tree_vector; vector<int> ivec; queue<TreeNode *> tree_queue; if (NULL == root) return tree_vector; tree_queue.push(root); tree_queue.push(NULL); int nLevelCount = 1; while (true) { TreeNode *pTemp = tree_queue.front(); tree_queue.pop(); if (pTemp == NULL) { if (nLevelCount%2 == 0) { //if the num of level is odd, swap the ivec; Swap(ivec); } tree_vector.push_back(ivec); ivec.clear(); if (tree_queue.empty()) break; tree_queue.push(NULL); nLevelCount ++; } else { ivec.push_back(pTemp->val); if (pTemp->left) tree_queue.push(pTemp->left); if (pTemp->right) tree_queue.push(pTemp->right); } } return tree_vector; }
相关文章推荐
- 103.leetcode Binary Tree Zigzag Level Order Traversal(medium)[二叉树层次遍历 栈]
- 【LeetCode】Binary Tree Zigzag Level Order Traversal 二叉树的锯齿形层次遍历 - Medium(LinkedIn)
- Leetcode 103 ,Binary Tree Zigzag Level Order Traversal(二叉树Z形分层遍历)
- LeetCode103 BinaryTreeZigzagLevelOrderTraversal(二叉树Z形层次遍历) Java题解
- LeetCode103 BinaryTreeZigzagLevelOrderTraversal(二叉树Z形层次遍历) Java题解
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- 103.leetcode Binary Tree Zigzag Level Order Traversal(medium)[二叉树 栈]
- LeetCode 103 Binary Tree Zigzag Level Order Traversal(二叉树层序遍历)
- LeetCode(Binary Tree Level Order Traversal, 2,Zigzag)二叉树的层次遍历
- LeetCode-Binary Tree Zigzag Level Order Traversal-二叉树锯齿层次遍历-二叉树DFS层次遍历
- Binary Tree Zigzag Level Order Traversal (二叉树锯齿形层次遍历)
- 【LeetCode】Binary Tree Zigzag Level Order Traversal--- 层序遍历二叉树
- Leetcode 107 Binary Tree Level Order Traversal II 二叉树层次遍历与倒转
- 【LeetCode】BinaryTreeLevelOrderTraversal_ii 二叉树的层次遍历 II
- 【LeetCode笔记】Binary Tree Zigzag Level Order Traversal 二叉树Z字形遍历
- 102.LeetCode Binary Tree Level Order Traversal(easy)[二叉树层次遍历 广度搜索 队列]
- [leetcode-二叉树层次遍历并统计每层节点数]--102. Binary Tree Level Order Traversal
- LeetCode: 102_Binary Tree Level Order Traversal | 二叉树自顶向下的层次遍历 | Easy
- leetcode---Binary Tree Zigzag Level Order Traversal---层次遍历
- leetcode 二叉树层次遍历输出Binary Tree Level Order Traversal