leetCode(23):Binary Tree Zigzag Level Order Traversal

Given a binary tree, return thezigzag level ordertraversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).

For example:Given binary tree{3,9,20,#,#,15,7},

3 / \ 9 20/ \ 15 7

return its zigzag level order traversal as:

[ [3], [20,9], [15,7]]

又是层序遍历!!!

/** * Definition for a binary tree node. * struct TreeNode { *int val; *TreeNode *left; *TreeNode *right; *TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {queue<TreeNode*> nodes;vector< vector<int> > result;vector<int> tmp;if(NULL==root)return result;nodes.push(root);bool flag=false;while(!nodes.empty()){int length=nodes.size();int i=0;while(i<length){TreeNode* tmpNode=nodes.front();tmp.push_back(tmpNode->val);if(tmpNode->left)nodes.push(tmpNode->left);if(tmpNode->right)nodes.push(tmpNode->right);nodes.pop();i++;}if(flag){reverse(tmp.begin(),tmp.end());flag=false;}else{flag=true;}result.push_back(tmp);tmp.clear();}return result;}};

,人若勇敢就是自己最好的朋友

leetCode(23):Binary Tree Zigzag Level Order Traversal

相关文章:

你感兴趣的文章:

标签云: