leetcode_102_Binary Tree Level Order Traversal
来源:互联网 发布:东北师大附中网络教育 编辑:程序博客网 时间:2024/04/29 16:38
欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢
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,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; *///方法一:BFSstruct Node{ TreeNode *node; int level; Node(TreeNode *n , int l) : node(n) , level(l) {}};class Solution {vector<vector<int>> ans;public: vector<vector<int> > levelOrder(TreeNode *root) { ans.clear(); if(root == NULL) return ans; vector<int> temp; int Curlevel = -1; queue<Node> q; q.push( Node(root , 1) ); while(!q.empty()) { Node nodeQ = q.front(); q.pop(); if(nodeQ.node->left) q.push( Node(nodeQ.node->left , nodeQ.level+1) ); if(nodeQ.node->right) q.push( Node(nodeQ.node->right , nodeQ.level+1) ); if(Curlevel != nodeQ.level) { if(Curlevel != -1) ans.push_back(temp); temp.clear(); temp.push_back(nodeQ.node->val); Curlevel = nodeQ.level; } else temp.push_back(nodeQ.node->val); } ans.push_back(temp); return ans; }};
//方法二:DFSclass Solution {vector<vector<int>> ans;public: void levelOrderUtil (TreeNode *root , int depth) { if(root==NULL) return; if(ans.size() > depth) ans[depth].push_back(root->val); else { vector<int> a; a.push_back(root->val); ans.push_back(a); } levelOrderUtil( root->left , depth+1 ); levelOrderUtil( root->right , depth+1 ); } vector<vector<int> > levelOrder(TreeNode *root) { ans.clear(); levelOrderUtil( root , 0); return ans; }};
0 0
- Leetcode_102_Binary Tree Level Order Traversal
- leetcode_102_Binary Tree Level Order Traversal
- leetcode_102_Binary Tree Level Order Traversal
- Level Order Tree Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- 数据库优化1
- Android sdk升级23时遇到的问题
- Unity开发-你必须知道的优化建议
- 第八天工作总结
- IOS初体验
- leetcode_102_Binary Tree Level Order Traversal
- Spring之ORM模块
- 实现文件上传,以及表单提交成功的回调函数
- JS如何实现文字向下滚动
- [Leetcode 92, medium] Reverse Linked-list II
- 错误总结1
- leetcode_107_Binary Tree Level Order Traversal II
- jQuery引用后不能使用
- leetcode_114_Flatten Binary Tree to Linked List