Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:数据三国 编辑:程序博客网 时间:2024/06/06 03:34
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]]
/** * 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) { vector<vector<int> > result; if (root == NULL) { return result; } queue<TreeNode*> buf; bool left = true; buf.push(root); buf.push(NULL); vector<int> temp; stack<int> tempRight; while (!buf.empty()) { TreeNode *front = buf.front(); if (front != NULL) { if (left) { temp.push_back(front->val); } else { tempRight.push(front->val); } if (front->left) { buf.push(front->left); } if (front->right) { buf.push(front->right); } } else { if (!left) { while (!tempRight.empty()) { int top = tempRight.top(); temp.push_back(top); tempRight.pop(); } } result.push_back(temp); temp.clear(); if (buf.size() > 1) { if (left) { left = false; } else { left = true; } buf.push(NULL); } } buf.pop(); } 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
- Binary Tree Zigzag Level Order Traversal
- 【leetcode】Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- 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
- Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- 黑马程序员——c语言基础:指针
- 架构学习相关资料
- Appium(学习)
- leetcode Bitwise AND of Numbers Range
- TCPIP: IPv4分类
- Binary Tree Zigzag Level Order Traversal
- TCPIP: IP报头
- 解决Linux系统忘记root密码的方法+linux搭载ftp服务器方法
- 心情
- spring-ws的使用
- ffmpeg 总结
- leetcode Number of 1 Bits
- Java基础---Object类、内部类
- URAL - 1823 Ideal Gas(审题)