102. Binary Tree Level Order Traversal
题意:
树的层次遍历,基础数据结构题。
代码
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
struct Node {
TreeNode *TN;
int L;
Node(TreeNode *t, int i) :TN(t), L(i) {};
};
vector<vector<int>> levelOrder(TreeNode* root) {
list<Node> li;
Node p = Node(root, 0);
li.push_back(p);
int lv = 0;
vector<vector<int>> res;
vector<int> cur;
while (!li.empty()) {
p = li.front();
li.pop_front();
if (p.L != lv) {
res.push_back(cur);
cur.clear();
lv++;
}
cur.push_back(p.TN->val);
if (p.TN->left)
li.push_back(Node(p.TN->left, lv + 1));
if (p.TN->right)
li.push_back(Node(p.TN->right, lv + 1));
}
res.push_back(cur);
return res;
}