leetcode 102 —— Binary Tree Level Order Traversal

来源:互联网 发布:fifaol3非i发数据库 编辑:程序博客网 时间:2024/06/01 09:25

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

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

    3   / \  9  20    /  \   15   7

return its level order traversal as:

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

思路:使用队列,将每行从左往右存入队列。上一行的节点边出队列,边将其左右节点压入队列。

class Solution {public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> res;if (!root) return res;queue<TreeNode*> que;que.push(root);int cur = 1;int next;while (!que.empty()){vector<int> tmp;next = 0;while (cur--){TreeNode *p = que.front();que.pop();tmp.push_back(p->val);if (p->left){que.push(p->left);next++;}if (p->right){que.push(p->right);next++;}}cur = next;res.push_back(tmp);tmp.clear();}return res;}};


0 0
原创粉丝点击