当前位置: 代码迷 >> 综合 >> leetcode_111 Binary Tree Level Order Traversal
  详细解决方案

leetcode_111 Binary Tree Level Order Traversal

热度:61   发布时间:2024-02-07 06:25:59.0

题目:

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,null,null,15,7],

3/ \9  20/  \15   7

 

return its level order traversal as:

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

广度优先遍历:BFS + queue

代码如下:(注意 len = Q.size(),不能直接在循环中替换)

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<int> level;vector<vector<int> > res;if(root == NULL)return res;queue<TreeNode*> Q;Q.push(root);while(!Q.empty()){int len = Q.size();for(int i = 0; i < len;i++){TreeNode* p = Q.front();Q.pop();level.push_back(p->val);if(p->left) Q.push(p->left);if(p->right) Q.push(p->right);}res.push_back(level);level.clear();}return res;}
};

 

  相关解决方案