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

做一个网站需要到哪里做给别人做网站挣钱么

做一个网站需要到哪里做,给别人做网站挣钱么,免费网站推广软件下载,进销存软件终身免费版文章目录 非递归法前序遍历后序遍历中序遍历 递归法DFS 非递归法 通过栈Stack来模拟递归。 前序遍历 LeetCode 144 前序遍历:1 2 3 定义:存放答案的List、栈Stack 将root入栈出栈:node,为null则舍弃将node放入list将node.r…

文章目录

    • 非递归法
      • 前序遍历
      • 后序遍历
      • 中序遍历
    • 递归法DFS

非递归法

通过栈Stack来模拟递归。

前序遍历

LeetCode 144
在这里插入图片描述

前序遍历:1 2 3

定义:存放答案的List、栈Stack

  1. 将root入栈
  2. 出栈:node,为null则舍弃
  3. 将node放入list
  4. 将node.right入栈
  5. 将node.left入栈
  6. 栈不为空则重复2-5步

为了让左节点优先于右节点出栈,因此先将右节点入栈。

class Solution {public List<Integer> preorderTraversal(TreeNode root) {Stack<TreeNode> stack = new Stack<>();List<Integer> list = new LinkedList<>();stack.push(root);while(!stack.empty()){TreeNode node = stack.pop();if(node==null)continue;list.add(node.val);stack.push(node.right);stack.push(node.left);}return list;}
}

后序遍历

LeetCode 145
在这里插入图片描述

后序遍历:2 3 1

后序遍历仅需在前序遍历的代码中修改3处即可。

由前序遍历1 2 3 改为 1 3 2 再翻转为 2 3 1即为答案。

class Solution {public List<Integer> postorderTraversal(TreeNode root) {Stack<TreeNode> stack = new Stack<>();List<Integer> list = new LinkedList<>();stack.push(root);while(!stack.empty()){TreeNode node = stack.pop();if(node == null)continue;list.add(node.val);stack.push(node.left); // 先放入左节点stack.push(node.right); }Collections.reverse(list); // 反转return list;}
}

中序遍历

LeetCode 94

中序遍历代码与前序和后续不同。

在这里插入图片描述

中序遍历: 4 2 5 1 3。

思考:要想先输出4,则需要将左节点持续入栈,直到为null,此时出栈即为4,然后将其右节点入栈…

同样的,定义存放结果的list和栈stack。

  1. cur = root
  2. cur不为空或者栈不为空
  3. 循环 将cur入栈,并将cur赋值其左节点,直到为空
  4. 出站node,将node加入list
  5. 将node赋值为node.left
  6. 重复2 - 5步
class Solution {public List<Integer> inorderTraversal(TreeNode root) {Stack<TreeNode> stack = new Stack<>();List<Integer> list = new LinkedList<>();TreeNode cur = root;while(cur!=null||!stack.empty()){while(cur!=null){stack.push(cur);cur = cur.left;}TreeNode node = stack.pop(); list.add(node.val);cur = node.right;}return list;}
}

递归法DFS

class Solution {List<Integer> list1 = new LinkedList<>(); // 前序List<Integer> list2 = new LinkedList<>(); // 中序List<Integer> list3 = new LinkedList<>(); // 后序public List<Integer> inorderTraversal(TreeNode root) {traverse(root);return list2; }void traverse(TreeNode root){if(root==null)return;list1.add(root.val); traverse(root.left); // 递归左节点list2.add(root.val);traverse(root.right); // 递归右节点list3.add(root.val);}}

参考:

  • cyc2018
  • 代码随想录 B站
http://www.yayakq.cn/news/888912/

相关文章:

  • 网站开发项目商业计划书中视频自媒体平台注册
  • 如何加强网站安全建设wordpress注册邮箱收不到
  • 网站建设的知识和技能网易企业邮箱格式
  • 设计师a 网站ftp中打开wordpress
  • 客户对网站建设公司的评价厦门网站制作系统
  • seo优化网站的注意事项app代码开发流程图
  • 农村建设有限公司网站搜索引擎优化培训免费咨询
  • 二类电商用网站怎么做H5页面四川建筑人才招聘网
  • 做网站排名要多少钱网站可以做腾讯广告联盟
  • 学网站开发工作好找吗傻瓜式网站源码
  • 部分网站打不开的原因加强企业网站建设
  • 江西南昌电子商务网站建设公司装修公司走心文案
  • 花都区pc端网站建设小程序招商加盟
  • 玉树营销网站建设哪家好wordpress 评论 改微博
  • 淘宝联盟建微网站汕头免费建站哪里有
  • 如何构建大型网站架构赶集网2022年最新招聘
  • 婚纱网站建设网站开发众包平台
  • 唐山网站制作系统uniapp商城源码
  • 外贸模板网站2023年最新法定传染病有哪些
  • 广州网站建设q.479185700棒wordpress插件无法启用
  • 网站后台用什么开发凡科自助建站平台
  • 苏州网站优化企业公司网站建设需要显示什么软件
  • 发布培训的免费网站模板WordPress评论博主
  • 淄博免费网站建设哪家好外包岗位可以去吗
  • 网站开发 流程住房和城乡建设厅网站办事大厅
  • 网站开发项目经验描述怎么写做投资网站
  • 网站建设整个流程合肥网络推广专员
  • 做网站的公司多少钱南城仿做网站
  • 免费营销型企业网站模板广州官网建设
  • 柳州门户网站建设公司排名重庆互联网怎么样