引言
LeetCode里涉及到二叉树的题都是采用了形如[1,2,3,4,NULL,5,NULL]
这样的格式作为输入,其中NULL就表示该节点为空节点。LeetCode并没有给出如何通过这样一个数组进行二叉树的构建,但我们通过分析可以发现这实际上就是一个对二叉树的层次遍历过程,只不过空的叶子节点使用了NULL来进行占位。
方案
为了方便在本地进行Debug,我们可以依据这一流程自己构造对应的二叉树。考虑到这一格式输入本身就是某种意义上的层次遍历,因此我们也只需要以层次遍历的方式来建树即可。层次遍历的写法中,我们是初始化了一个队列,循环地在每一层执行从左到右输出,从左到右子节点入队列的操作,代码为:
vector<vector<int>> result;
queue<TreeNode*> que;
if(root) que.push(root);
while(!que.empty()){
vector<int> cur;
int size=que.size();
for(;size>0;size--){
TreeNode* temp=que.front();
que.pop();