binary-tree-level-order-traversal I、II——输出二叉树的数字序列
2017-06-15 16:15
417 查看
I
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},
return its level order traversal as:
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:
The above binary tree is serialized as"{1,2,3,#,#,4,#,#,5}".
II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree{3,9,20,#,#,15,7},
return its bottom-up level order traversal as:
confused what"{1,#,2,3}"means? > read more on how binary tree is serialized on OJ.
先将结果v存入stack中,最后在从stack倒入res形成倒序,未找到其他好的方法
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}".
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<vector<int> > levelOrder(TreeNode *root) { 13 vector<vector<int>> res; 14 if(root==NULL) return res; 15 queue<TreeNode*> q; 16 q.push(root); 17 while(!q.empty()){ 18 int n=q.size(); 19 vector<int> v; 20 for(int i=0;i<n;i++){ 21 TreeNode *cur=q.front(); 22 q.pop(); 23 v.push_back(cur->val); 24 if(cur->left!=NULL) 25 q.push(cur->left); 26 if(cur->right!=NULL) 27 q.push(cur->right); 28 } 29 res.push_back(v); 30 } 31 return res; 32 } 33 };
II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree{3,9,20,#,#,15,7},
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7] [9,20], [3], ]
confused what"{1,#,2,3}"means? > read more on how binary tree is serialized on OJ.
先将结果v存入stack中,最后在从stack倒入res形成倒序,未找到其他好的方法
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<vector<int> > levelOrderBottom(TreeNode *root) { 13 vector<vector<int>> res; 14 if(root==NULL) return res; 15 stack<vector<int>> s; 16 queue<TreeNode*> q; 17 q.push(root); 18 while(!q.empty()){ 19 int n=q.size(); 20 vector<int> v; 21 for(int i=0;i<n;i++){ 22 TreeNode *cur=q.front(); 23 q.pop(); 24 v.push_back(cur->val); 25 if(cur->left!=NULL) 26 q.push(cur->left); 27 if(cur->right!=NULL) 28 q.push(cur->right); 29 30 } 31 s.push(v); 32 } 33 while(!s.empty()){ 34 res.push_back(s.top()); 35 s.pop(); 36 } 37 return res; 38 } 39 };
相关文章推荐
- Binary Tree Level Order Traversal II 二叉树按层遍历(反向输出)@LeetCode
- Binary Tree Level Order Traversal II 从底部倒着输出二叉树每一层的元素
- 【遍历二叉树】05二叉树的层次遍历II【Binary Tree Level Order Traversal II】
- LeetCode Binary Tree Level Order Traversal II (二叉树颠倒层序)
- Leetcode 107 Binary Tree Level Order Traversal II 二叉树层次遍历与倒转
- LeetCode 107 Binary Tree Level Order Traversal II(二叉树的层级顺序遍历2)(*)
- 二叉树的层序遍历 改进版 Binary Tree Level Order Traversal II
- LeetCode 107 Binary Tree Level Order Traversal II(二叉树的层级顺序遍历2)(*)
- 【LeetCode】BinaryTreeLevelOrderTraversal_ii 二叉树的层次遍历 II
- leetcode 二叉树层次遍历输出Binary Tree Level Order Traversal
- LeetCode | Binary Tree Zigzag Level Order Traversal(二叉树锯齿形层序输出)
- LeetCode | Binary Tree Level Order Traversal II(二叉树层序遍历II)
- 004-107-Binary Tree Level Order Traversal II 层序遍历二叉树之二
- Binary Tree Zigzag Level Order Traversal 二叉树按层遍历,zigzag输出@LeetCode
- LeetCode OJ 之 Binary Tree Level Order Traversal II (二叉树的层次遍历-二)
- Binary Tree Level Order Traversal I和II 层次遍历二叉树
- [Lintcode]Binary Tree Level Order Traversal II 二叉树的层次遍历 II
- 5.1.5—二叉树的遍历—Binary Tree Level Order Traversal II
- LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy
- 【遍历二叉树】06二叉树曲折(Z字形)层次遍历II【Binary Tree Zigzag Level Order Traversal】