leetCode102. Binary Tree Level Order Traversal 二叉树层次遍历

简介:

102. Binary Tree Level Order Traversal

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]
]


解题思路:

采用双队列来处理。

用当前队列current来处理本层的所有节点,将本层信息记录在vector中。用next来记录下一层的节点信息。

当前队列处理后,将本层信息的vector存储到结果vector中。清空存储本层信息的vector。将current和next交换。然后重新处理current队列。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
  * 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 >> levelOrder(TreeNode* root) {
         vector<vector< int >> result;
         queue<TreeNode *> current,next;
         vector< int > level;
         
         if (NULL == root)
             return  result;
         current.push(root);
         
         while (current.size() > 0)
         {
             while (current.size() > 0)
             {
                 TreeNode *p = current.front();
                 current.pop();
                 level.push_back(p->val);
                 if (p->left)
                     next.push(p->left);
                 if (p->right)
                     next.push(p->right);
             }
             result.push_back(level);
             level.clear();
             current.swap(next);
         }
         
         return  result;
     }
};


本文转自313119992 51CTO博客,原文链接:http://blog.51cto.com/qiaopeng688/1834819

相关文章
|
5天前
leetcode代码记录(二叉树的所有路径
leetcode代码记录(二叉树的所有路径
10 0
|
6天前
leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
7 0
|
6天前
leetcode代码记录(二叉树的最小深度
leetcode代码记录(二叉树的最小深度
9 0
|
6天前
leetcode代码记录(二叉树的最大深度
leetcode代码记录(二叉树的最大深度
8 0
|
6天前
leetcode代码记录(翻转二叉树
leetcode代码记录(翻转二叉树
7 0
|
6天前
leetcode代码记录(二叉树的层序遍历
leetcode代码记录(二叉树的层序遍历
10 0
|
6天前
|
算法
leetcode代码记录(二叉树递归遍历
leetcode代码记录(二叉树递归遍历
8 0
|
20天前
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
|
27天前
|
算法 API DataX
二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”
二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”
|
27天前
|
算法 DataX
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”