陕西省工程建设交易服务中心网站,中职网站建设课件,三亚住房和城乡建设厅网站,企业网站源码给定一个二叉树#xff0c;返回其节点值的锯齿形层次遍历。#xff08;即先从左往右#xff0c;再从右往左进行下一层遍历#xff0c;以此类推#xff0c;层与层之间交替进行#xff09;。 例如#xff1a; 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 /… 给定一个二叉树返回其节点值的锯齿形层次遍历。即先从左往右再从右往左进行下一层遍历以此类推层与层之间交替进行。 例如 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回锯齿形层次遍历如下 [ [3], [20,9], [15,7] ] 解法
class Solution {
public:vectorvectorint zigzagLevelOrder(TreeNode* root) {if(!root) return {};vectorvectorint res;queueTreeNode * qu;qu.push(root);int n 0;while(!qu.empty()){int count qu.size();vectorint curr;while(count--){TreeNode *s qu.front();qu.pop();curr.push_back(s-val);if(s-left) qu.push(s-left);if(s-right) qu.push(s-right);}n;if(n % 2 0)std::reverse(curr.begin(), curr.end());res.push_back(curr);}return res;}
};