【LeetCode笔记】Binary Tree Level Order Traversal 二叉树分层存储
来源:互联网 发布:大数据hadoop应用 编辑:程序博客网 时间:2024/05/29 06:46
思路:
1.分层->想到广度优先搜索->使用队列
2.在广度优先搜索中,难点在于怎么判断队列中一层节点的开始和结束。本来打算统计,但是看到有更好的思路是,当把上一层根节点全部取出来时,队列中剩余的刚好全部是当前这一层的所有节点。所以此时只需要计算一下队列的大小(假设大小为size),那么接下来需要对队列进行size次的pop(取出当前这一层的全部节点,一共size个),并存入临时的vector中;同时进行size次的push,把当前节点的左右子树都压入队列。这样当把这一层的节点全部pop出来时,队列里剩下的就全部是下一层的节点了。
/** * Definition for a binary tree node. * 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) { vector<vector<int>> v; if(root==NULL) return v; //else if(root->left==NULL&&root->right==NULL){ // v[0].push_back(root->val); // return v; //} else{ TreeNode* p; queue<TreeNode*> q; q.push(root); while(!q.empty()){ int size = q.size(); vector<int> v2; int i = 0; while(i<size){ p = q.front(); q.pop(); v2.push_back(p->val); if(p->left!=NULL) q.push(p->left); if(p->right!=NULL) q.push(p->right); i++; } v.push_back(v2); } return v; } }};
以及,当LeetCode报一些奇奇怪怪的错误的时候,多让程序打印输出比较容易知道问题出在哪(或者转移到本地调试)。
ps:今天还遇到了一个特别奇葩的问题
Line 68: expected '}' at end of input 可是明明我的代码才34行。。。
后来本地编译了一下,发现是一个if的反括号漏掉了,真是。。。好好反思
0 0
- 【LeetCode笔记】Binary Tree Level Order Traversal 二叉树分层存储
- Binary Tree Level Order Traversal 分层遍历二叉树@LeetCode
- Leetcode Binary Tree Level Order Traversal 二叉树分层遍历
- Leetcode Binary Tree Level Order Traversal II 二叉树分层遍历
- LeetCode 102. Binary Tree Level Order Traversal(二叉树分层遍历)
- LeetCode 107. Binary Tree Level Order Traversal II(二叉树分层遍历)
- Leetcode 103 ,Binary Tree Zigzag Level Order Traversal(二叉树Z形分层遍历)
- leetcode笔记:Binary Tree Level Order Traversal
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- 【LeetCode笔记】Binary Tree Zigzag Level Order Traversal 二叉树Z字形遍历
- Leetcode 树 Binary Tree Level Order Traversal
- 【LeetCode】Binary Tree Level Order Traversal--(二叉树层序遍历)
- 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[Tree]: Binary Tree Level Order Traversal
- *(leetcode) Binary Tree Level Order Traversal (tree)
- 语义分析的一些方法(一)
- [计算机视觉][ARM-Linux开发] Ubuntu14.04安装OpenCV3.2中遇到的问题的解决方案
- 关于hibernate 里面的序列
- Blender
- Memcached与MySQL数据同步
- 【LeetCode笔记】Binary Tree Level Order Traversal 二叉树分层存储
- 省选模拟题 T1 A
- Bootstrap模态框modal的高度和宽度设置
- 235. Lowest Common Ancestor of a Binary Search Tree
- tensorflow实例:实现word2vec语言模型
- (转载)哥们别逗 了,写个脚本那真不叫运维自动化!
- spring mvc跨域请求处理
- 二叉树的最大节点
- Python中文分词_使用介绍(wordcloud+jieba)