以出现的频率来看。树的层序遍历一定是考察的重点,除非工作人员想找题水数量。
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;}
};