如何用rp做网站,司瓦图网站,c 做彩票网站,做哪些网站比较好的给你二叉树的根节点 root #xff0c;返回其节点值的 层序遍历 。 #xff08;即逐层地#xff0c;从左到右访问所有节点#xff09;。
思路一#xff1a;递归
int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes){int** ans(int**)mal…给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点。
思路一递归
int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes){int** ans(int**)malloc(sizeof(int*)*2000);*returnSize0;if(!root) return NULL;int columnSizes[3000];struct TreeNode* queue[3000];int rear0;int head0;queue[rear]root;while(rear!head){ans[(*returnSize)](int*)malloc(sizeof(int)*(rear-head));columnSizes[(*returnSize)]rear-head;int starthead;headrear;for(int istart;ihead;i){ans[(*returnSize)][i-start]queue[i]-val;if(queue[i]-left) queue[rear]queue[i]-left;if(queue[i]-right) queue[rear]queue[i]-right;}(*returnSize);}*returnColumnSizes(int*)malloc(sizeof(int)*(*returnSize));for(int i0;i*returnSize;i) (*returnColumnSizes)[i]columnSizes[i];return ans;
}
分析
本题要求二叉树的层序遍历可想到使用BFS算法将二叉树每层放入数组中最后输出数组可想到利用队列插入队尾删除队首的特性模拟队列记录每层的数再输出
总结
本题考察二叉树的层序遍历利用队列的特性可以解决