当前位置: 首页 > news >正文

网站建设选谋者欧洲ip地址

网站建设选谋者,欧洲ip地址,dede网站栏目管理,江苏省住房与城乡建设厅网站文章目录前序遍历代码\Python代码\C中序遍历代码\Python代码\C后序遍历代码\Python代码\C层序遍历代码\Python代码\C反向层序遍历代码\Python代码\C总结前序遍历 题目链接   前序遍历意思就是按照“根节点-左子树-右子树”的顺序来遍历二叉树#xff0c;通过递归方法来实现… 文章目录前序遍历代码\Python代码\C中序遍历代码\Python代码\C后序遍历代码\Python代码\C层序遍历代码\Python代码\C反向层序遍历代码\Python代码\C总结前序遍历 题目链接   前序遍历意思就是按照“根节点-左子树-右子树”的顺序来遍历二叉树通过递归方法来实现的话很简单我们只需要描述一下访问的规则 1.如果当前节点为空就返回 2.否则就访问当前节点 3.访问左子树左节点 4.访问右子树右节点 对python来说一般我们用一个列表来保存访问的结果列表对象是可修改对象所以我们可以直接把列表对象当做函数的参数跟着传递对C来说我们可以用一个vector向量来保存结果在函数传递时使用传引用的方式一样可以达到效果。 代码\Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def preorderTraversal(self, root: Optional[TreeNode]) - List[int]:res []self.preorder(root, res)return resdef preorder(self, root, res):if not root:returnres.append(root.val)self.preorder(root.left, res)self.preorder(root.right, res)代码\C /*** 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:vectorint preorderTraversal(TreeNode* root) {vectorint res;travel(root, res);return res;}void travel(TreeNode *root, vectorint res){if(!root){return;}res.push_back(root-val);travel(root-left, res);travel(root-right, res);} };中序遍历 题目链接   类似的中序遍历就是遍历的时候把根节点放到中间即“左子树-根节点-右子树”的顺序。只需要稍微修改一下代码就行。 代码\Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def inorderTraversal(self, root: Optional[TreeNode]) - List[int]:res []self.inorder(res, root)return resdef inorder(self, res, root):if root is None:returnself.inorder(res, root.left)res.append(root.val)self.inorder(res, root.right)代码\C /*** 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:vectorint inorderTraversal(TreeNode* root) {vectorint res;inorder(root, res);return res;}void inorder(TreeNode *root, vectorint res){if(!root){return;}inorder(root-left, res);res.push_back(root-val);inorder(root-right, res);} };后序遍历 添加链接描述   类似的后序遍历就是遍历的时候把根节点放到最后即“左子树-右子树-根节点”的顺序。同样只需要稍微修改一下代码就行。 代码\Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def postorderTraversal(self, root: Optional[TreeNode]) - List[int]:res []self.postorder(res, root)return resdef postorder(self, res, root):if root is None:returnself.postorder(res, root.left)self.postorder(res, root.right)res.append(root.val)代码\C /*** 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:vectorint postorderTraversal(TreeNode* root) {vectorint res;postorder(root, res);return res;}void postorder(TreeNode *root, vectorint res){if(!root){return;}postorder(root-left, res);postorder(root-right, res);res.push_back(root-val);} };层序遍历 题目链接   层序遍历一般指对二叉树进行从上到下从左到右的一层一层的遍历同样深度的节点在同一层。递归的层序遍历需要借助节点所在的深度信息。 代码\Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def levelOrder(self, root: Optional[TreeNode]) - List[List[int]]:res []self.level(root, 0, res)return resdef level(self, root, depth, res):if not root:return []if len(res) depth:res.append([])res[depth].append(root.val)if root.left:self.level(root.left, depth 1, res)if root.right:self.level(root.right, depth 1, res)代码\C /*** 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) {vectorvectorint res;travel(root, 0, res);return res;}void travel(TreeNode *root, int depth, vectorvectorint res){if(!root){return;}if(res.size() depth){res.push_back({});}res[depth].push_back(root-val);if(root-left){travel(root-left, depth 1, res);}if(root-right){travel(root-right, depth 1, res);}} };反向层序遍历 反向层序遍历顾名思义就是从下往上从左往右的反着来我们只需要在正向遍历的基础上在最后返回答案前把答案反转一遍。 代码\Python return res[::-1] #or return res.reverse()代码\C reverse(res.begin(), res.end()); return res;总结 最常见最基础的4种二叉树的遍历方式也是二叉树很多题目的基础算法如果对你有帮助的话动动手指点个赞吧
http://www.w-s-a.com/news/395942/

相关文章:

  • 网站搭建免费模板飞鱼crm下载
  • 网站开发竞品分析app制作公司深圳
  • 网站建设ssc源码修复设计班级网站建设
  • 网站重定向凡科做网站不要钱
  • 佛山html5网站建设微信营销软件破解版
  • 网站单页做301南京百度推广
  • 私人做网站要多少钱展芒设计网页
  • 怎样网站制作设计如何在网上推广农产品
  • 做关键词排名卖网站聚名网
  • 吉林省住房城乡建设厅网站首页体育器材网站建设方案
  • 网站建设及维护专业手机金融界网站
  • 常州网站建设工作室建立网站有怎么用途
  • 如何盗取网站推广策划书模板
  • 游戏网站建设计划书网络开发需要学什么
  • 手机网站维护费网站开发包括网站过程
  • 懂做游戏钓鱼网站的网站建设技术的发展
  • 网站被百度收录百度一下你就知道 官网
  • 雅客网站建设做网站用什么做
  • 做宣传海报网站专业网站设计速寻亿企邦
  • 秦皇岛市住房和城乡建设局网站有关网站开发的参考文献
  • 晋城城乡建设局网站深圳外贸业务员工资
  • 招聘网站开发的公司销售运营主要做什么
  • 徐州网站无障碍建设wordpress证书
  • c语言可以做网站吗请人做网站收费多少
  • 中英双语网站怎么做网站为什么做静态
  • 毕业设计做音乐网站可以吗网站运营方案
  • windos 下做网站工具网站右侧返回顶部
  • 点餐网站怎么做济源网站建设济源
  • 嘉兴公司网站制作文明网站的建设与管理几点思考
  • 扬州公司做网站徐州网站建设优化