【LeetCode】Binary Tree Level Order Traversal--(二叉树层序遍历)
2013-10-01 13:08
393 查看
题目描述:
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
return its level order traversal as:
confused what
read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
The above binary tree is serialized as
代码:
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] ]
confused what
"{1,#,2,3}"means? >
read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5
The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}".
代码:
/** * Definition for binary tree * 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) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<vector<int> > res; vector<int> lev; if(root == NULL) return res; queue<TreeNode *> que; que.push(root); que.push(NULL); //end of one level while(true) { TreeNode *cur = que.front(); que.pop(); if(!cur) { res.push_back(lev); lev.clear(); if(que.empty()) break; que.push(NULL); } else { lev.push_back(cur->val); if(cur->left) que.push(cur->left); if(cur->right) que.push(cur->right); } } return res; } };
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- leetcode 题解:Binary Tree Level Order Traversal (二叉树的层序遍历)
- LeetCode | Binary Tree Level Order Traversal(二叉树层序遍历)
- LeetCode 102 Binary Tree Level Order Traversal(二叉树层序遍历)
- 【LeetCode-面试算法经典-Java实现】【102-Binary Tree Level Order Traversal(二叉树层序遍历)】
- 【LeetCode】Binary Tree Zigzag Level Order Traversal--- 层序遍历二叉树
- LeetCode 103 Binary Tree Zigzag Level Order Traversal(二叉树层序遍历)
- LeetCode | Binary Tree Level Order Traversal II(二叉树层序遍历II)
- Binary Tree Zigzag Level Order Traversal (LeetCode) 层序遍历二叉树
- leetcode-Binary Tree Level Order Traversal 二叉树层序遍历
- leetcode:Binary Tree Level Order Traversal 二叉树层序遍历
- [LeetCode] Binary Tree Level Order Traversal 二叉树层序遍历
- [LeetCode] Binary Tree Level Order Traversal II 二叉树层序遍历之二
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- 【LeetCode】Binary Tree Zigzag Level Order Traversal 二叉树的锯齿形层次遍历 - Medium(LinkedIn)
- LeetCode(Binary Tree Level Order Traversal, 2,Zigzag)二叉树的层次遍历
- leetCode解题报告之Binary Tree Level Order Traversal II,I(二叉树层次遍历)
- Binary Tree Level Order Traversal 二叉树的层序遍历
- Leetcode 107 Binary Tree Level Order Traversal II 二叉树层次遍历与倒转
- 【leetcode 层序遍历】Binary Tree Level Order Traversal