以出现的频率来看。树的层序遍历一定是考察的重点,除非工作人员想找题水数量。
zigzag,还是有几道题的,层序的这个非常easy,假设是奇数层。reverse下面就可以。无他。我写的时候预计还不知道这个函数。要么怎么这么拙呢。。
class Solution { public: vector<vector<int> > zigzagLevelOrder(TreeNode *root) { vector<vector<int> > res; if(root == NULL) return res; vector<int> tpres; queue<TreeNode*> que; TreeNode *pNode; int level = 0; que.push(root); que.push(NULL); while(!que.empty()){ pNode = que.front(); que.pop(); if(pNode == NULL){ level++; if(level%2 == 0){ for(int i=0, j=tpres.size()-1;i<j;i++, j--){ int t = tpres[i]; tpres[i] = tpres[j]; tpres[j] = t; } } res.push_back(tpres); if(que.empty()) break; else{ tpres.clear(); que.push(NULL); continue; } } tpres.push_back(pNode->val); if(pNode->left) que.push(pNode->left); if(pNode->right) que.push(pNode->right); } return res; } };