LeetCode:Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:餐饮电脑收银软件 编辑:程序博客网 时间:2024/05/16 05:46
题目描述:
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]]
思路分析:层序遍历二叉树。设置一个标志变量r来表示当前层是奇数层还是偶数层。当处于偶数数层时,将当前层得到的序列反转后再插入到层序遍历的序列中,奇数层则直接插入。层序遍历结束后即得到结果。
代码:
vector<vector<int> > Solution::zigzagLevelOrder(TreeNode *root){ vector<vector<int> > result; vector<int> sequence; bool r = false; TreeNode * flag = new TreeNode(0); queue<TreeNode *> treenode_queue; if(root == NULL) return result; treenode_queue.push(root); treenode_queue.push(flag); while(treenode_queue.size() >= 1) { TreeNode * node = treenode_queue.front(); treenode_queue.pop(); if(node == flag) { if(r) { reverse(sequence.begin(),sequence.end()); } r = !r; result.push_back(sequence); sequence.clear(); if(treenode_queue.empty()) break; treenode_queue.push(flag); } else { sequence.push_back(node->val); if(node->left != NULL) treenode_queue.push(node->left); if(node->right != NULL) treenode_queue.push(node->right); } } return result;}
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
- javascript语法里一些难点问题
- 如何用C++中的STL对二维数组进行排序
- svn常用场景命令使用
- Android屏幕自适应解决方案
- 微型计算机系统
- LeetCode:Binary Tree Zigzag Level Order Traversal
- Java基础之基本循环
- SF:salesforce中,文件上传的接收对象
- SF :Salesforce中,reRender控件和rendered控件的使用
- SF :Salesforce中,用apex实现下拉列表
- SF :Salesforce中,创建定制对象时,注意的一些地方
- SF :Salesforce中,look up 和 master detail关系
- SF :Salesforce中,Billing Address
- osgkeyboard例子