# Binary Tree Level Order Traversal Leetcode Solution

In this post, we are going to solve the Binary Tree Level Order Traversal Leetcode Solution problem of Leetcode. This Leetcode problem is done in many programming languages like C++, Java, and Python.

## Problem

Given the `root` of a binary tree, return the level order traversal of its nodes’ values. (i.e., from left to right, level by level).

Example 1:

```Input: root = [3,9,20,null,null,15,7]
Output: [,[9,20],[15,7]]
```

Example 2:

```Input: root = 
Output: []
```

Example 3:

```Input: root = []
Output: []
```

Constraints:

• The number of nodes in the tree is in the range `[0, 2000]`.
• `-1000 <= Node.val <= 1000`

Now, lets see the leetcode solution of Binary Tree Level Order Traversal Leetcode Solution.

### Binary Tree Level Order Traversal Leetcode Solution in Python

```class Solution:
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
if not root:
return []

ans = []
q = deque([root])

while q:
currLevel = []
for _ in range(len(q)):
node = q.popleft()
currLevel.append(node.val)
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
ans.append(currLevel)

return ans
```

### Binary Tree Level Order Traversal Leetcode Solutionin CPP

```class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
if (root == nullptr)
return {};

vector<vector<int>> ans;
queue<TreeNode*> q{{root}};

while (!q.empty()) {
vector<int> currLevel;
for (int sz = q.size(); sz > 0; --sz) {
TreeNode* node = q.front();
q.pop();
currLevel.push_back(node->val);
if (node->left)
q.push(node->left);
if (node->right)
q.push(node->right);
}
ans.push_back(currLevel);
}

return ans;
}
};
```

### Binary Tree Level Order Traversal Leetcode Solution in Java

```class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
if (root == null)
return new ArrayList<>();

List<List<Integer>> ans = new ArrayList<>();
Queue<TreeNode> q = new ArrayDeque<>(Arrays.asList(root));

while (!q.isEmpty()) {
List<Integer> currLevel = new ArrayList<>();
for (int sz = q.size(); sz > 0; --sz) {
TreeNode node = q.poll();
if (node.left != null)
q.offer(node.left);
if (node.right != null)
q.offer(node.right);
}