当前位置: 首页> 新闻> 资讯 > erp软件销售_办公室装修铺哪种地板_上海百度_网络推广网站排名

erp软件销售_办公室装修铺哪种地板_上海百度_网络推广网站排名

时间:2025/9/11 12:53:27来源:https://blog.csdn.net/s478527548/article/details/146156328 浏览次数:1次
erp软件销售_办公室装修铺哪种地板_上海百度_网络推广网站排名

为什么下面都说很简单……难道我真的很菜吗…………

好吧可能是数据结构忘了很多,层序遍历我记得老师是讲过的。

先搜了下层序遍历惯用的套路,就是不断储存下一级(left和right)的节点,同时不断遍历储存的节点,每次将节点值放进去。

这道题和普通层序遍历还是有差别的,需要将遍历结果按照不同层分开。

这就要求记录层数。

我最初的想法是,建立存储节点的容器的同时建立存储节点对应层数的容器,每次存储下一级的节点就顺势存储这一级的层数加一。

/*** 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:vector<int> l;vector<TreeNode*> t;vector<vector<int>> v;vector<vector<int>> levelOrder(TreeNode* root) {if(root==NULL) return v;l.push_back(0);t.push_back(root);while(!l.empty()){int layer=l[0];TreeNode* tree=t[0];l.erase(l.begin());t.erase(t.begin());if(v.size()<=layer) v.push_back(vector<int> ()); v[layer].push_back(tree->val);if(tree->left){l.push_back(layer+1);t.push_back(tree->left);}if(tree->right){l.push_back(layer+1);t.push_back(tree->right);}}return v;}
};

在评论区看到这样一种递归解法,感觉更通俗易懂一些,看了一遍自己写了一遍:

/*** 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:vector<vector<int>> result;void dg(TreeNode* tree,int layer){if(tree==NULL) return ;if(result.size()<=layer) result.push_back(vector<int> ());result[layer].push_back(tree->val);if(tree->left) dg(tree->left,layer+1);if(tree->right) dg(tree->right,layer+1);}vector<vector<int>> levelOrder(TreeNode* root) {dg(root,0);return result;}
};

关键字:erp软件销售_办公室装修铺哪种地板_上海百度_网络推广网站排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: