本文主要是介绍103. 二叉树的锯齿形层序遍历——广度搜索,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
class Solution {
public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {vector<vector<int>> vec_vec_int;queue<TreeNode*> Tree;bool flag = true;if(!root) //避免root为空的情况return vec_vec_int;Tree.push(root); //从root开始while(!Tree.empty()){int n = Tree.size(); //Tree会实时变化,所以要先存入ndeque<int> de_int; //新建一个,存储这一层的值for(int i = 0; i < n; i++){ //这一层的节点个数TreeNode* temp = Tree.front();if(flag)de_int.push_back(temp -> val); //push_back为正序elsede_int.push_front(temp -> val); //push_front为逆序if(temp -> left) //如果左节点存在,放入队列Tree.push(temp -> left);if(temp -> right) //如果右节点存在,放入队列Tree.push(temp -> right);Tree.pop(); //推出该节点}flag = !flag;vec_vec_int.push_back(vector<int>{de_int.begin(), de_int.end()});}return vec_vec_int;}
};
Accepted
33/33 cases passed (0 ms)
Your runtime beats 100 % of cpp submissions
Your memory usage beats 16.36 % of cpp submissions (12 MB)
这篇关于103. 二叉树的锯齿形层序遍历——广度搜索的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!