Monday, 18 July 2016

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

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

0 comments:

Post a Comment

Contact Me

Name

Email *

Message *

Popular Posts

Blog Archive