103. Binary Tree Zigzag Level Order Traversal

来源:互联网 发布:网页后台源代码数据库 编辑:程序博客网 时间:2024/06/06 18:57
vector<vector<int> > zigzagLevelOrder(TreeNode* root) {    if (root == NULL) {        return vector<vector<int> > ();    }    vector<vector<int> > result;    queue<TreeNode*> nodesQueue;    nodesQueue.push(root);    bool leftToRight = true;    while ( !nodesQueue.empty()) {        int size = nodesQueue.size();        vector<int> row(size);        for (int i = 0; i < size; i++) {            TreeNode* node = nodesQueue.front();            nodesQueue.pop();            // find position to fill node's value            int index = (leftToRight) ? i : (size - 1 - i);            row[index] = node->val;            if (node->left) {                nodesQueue.push(node->left);            }            if (node->right) {                nodesQueue.push(node->right);            }        }        // after this level        leftToRight = !leftToRight;        result.push_back(row);    }    return result;}
0 0
原创粉丝点击