2026/5/20 18:17:52
网站建设
项目流程
怎么利用网站开发app,配置网站开发环境,江门网站推广技巧方法,做非洲国际贸易网站一、题目描述 二、算法原理
思路#xff1a;在层序遍历的基础上添加一个标志位。
层序遍历的算法实现#xff1a;
https://blog.csdn.net/2403_84958571/article/details/156873549?spm1011.2415.3001.10575sharefrommp_manage_link
标志位#xff1a; 三、代码实…一、题目描述二、算法原理思路在层序遍历的基础上添加一个标志位。层序遍历的算法实现https://blog.csdn.net/2403_84958571/article/details/156873549?spm1011.2415.3001.10575sharefrommp_manage_link标志位三、代码实现/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: vectorvectorint zigzagLevelOrder(TreeNode* root) { if(root nullptr) return {}; queueTreeNode* que;//队列辅助实现层序遍历 vectorvectorint ret;//最终的结果 int num 0; que.push(root); bool flag false;//标志位fase:标识不用逆转数组 while(!que.empty()) { vectorint tmp; num que.size(); while(num--) { TreeNode* node que.front(); tmp.push_back(node-val); if(node-left) que.push(node-left); if(node-right) que.push(node-right); que.pop(); } if(flag)//flag true { //逆转数组 reverse(tmp.begin(),tmp.end()); flag false;//下一轮就不用逆转了 } else flag true; ret.push_back(tmp); } return ret; } };