网站如何设置关键词,图片优化,怎么做盗版小说网站,网站改版提示无需改版树和二叉树_7 一、leetcode-102二、题解1.引库2.代码 一、leetcode-102
二叉树的层序遍历 给你二叉树的根节点 root #xff0c;返回其节点值的 层序遍历 。 #xff08;即逐层地#xff0c;从左到右访问所有节点#xff09;。 样例输入#xff1a;root [3,9,20,null,nu… 树和二叉树_7 一、leetcode-102二、题解1.引库2.代码 一、leetcode-102
二叉树的层序遍历 给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点。 样例输入root [3,9,20,null,null,15,7]
样例输出 [[3],[9,20],[15,7]] 二、题解
1.引库 #include iostream#include cstdio#include cstdlib#include queue#include stack#include algorithm#include string#include map#include set#include vectorusing namespace std;
2.代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public://使用队列进行广度搜索实现层序遍历 vectorvectorint levelOrder(TreeNode* root) {if(rootNULL) return vectorvectorint();TreeNode *node;queueTreeNode * q;q.push(root);vectorvectorint ans;while(!q.empty()){int cntq.size();vectorint temp;for(int i0;icnt;i){nodeq.front();temp.push_back(node-val);if(node-left) q.push(node-left);if(node-right) q.push(node-right);q.pop();}ans.push_back(temp);}return ans;}//使用栈进行深度搜索实现层序遍历void dfs(TreeNode* root,int k,vectorvectorint ans){if(rootNULL) return ;if(kans.size()) ans.push_back(vectorint());//如果k数组的数量说明是本层中第一个访问到的节点ans[k].push_back(root-val);dfs(root-left, k1,ans);dfs(root-right, k1,ans);return ;}vectorvectorint levelOrder(TreeNode* root) {vectorvectorint ans;dfs(root,0,ans); //0是树的层数 return ans;}
};