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

网站建设 钱sem电子扫描显微镜

网站建设 钱,sem电子扫描显微镜,网站哪里有做的,珠海企业网站推广服务文章目录 part01 递归遍历1.1 二叉树的前序遍历1.2 二叉树的中序遍历1.3 二叉树的后序遍历 part02 迭代遍历2.1 二叉树的前序遍历2.2 二叉树的中序遍历2.3 二叉树的后序遍历 part03 层序遍历3.1 二叉树的层序遍历3.2 二叉树的层序遍历II3.3 二叉树的右视图 归纳获取双重链表的第…

文章目录

  • part01 递归遍历
    • 1.1 二叉树的前序遍历
    • 1.2 二叉树的中序遍历
    • 1.3 二叉树的后序遍历
  • part02 迭代遍历
    • 2.1 二叉树的前序遍历
    • 2.2 二叉树的中序遍历
    • 2.3 二叉树的后序遍历
  • part03 层序遍历
    • 3.1 二叉树的层序遍历
    • 3.2 二叉树的层序遍历II
    • 3.3 二叉树的右视图
  • 归纳
    • 获取双重链表的第一层

跟着代码随想录刷题的第十一天。

代码随想录链接:代码随想录

part01 递归遍历

前序遍历:中左右
中序遍历:左中右
后序遍历:左右中

1.1 二叉树的前序遍历

题目链接:二叉树的前序遍历

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();pre(root,result);return result;}public void pre(TreeNode root,List<Integer>result){if(root==null){return;}result.add(root.val);pre(root.left,result);pre(root.right,result);}
}

1.2 二叉树的中序遍历

题目链接:二叉树的中序遍历

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();pre(root,result);return result;}public void pre(TreeNode root,List<Integer>result){if(root == null)return;pre(root.left,result);result.add(root.val);pre(root.right,result);}
}

1.3 二叉树的后序遍历

题目链接:二叉树的后序遍历

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();pre(root,result);return result;}public void pre(TreeNode root,List<Integer>result){if(root==null)return;pre(root.left,result);pre(root.right,result);result.add(root.val);}
}

part02 迭代遍历

2.1 二叉树的前序遍历

题目链接:二叉树的前序遍历

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();Stack<TreeNode> stack = new Stack<>();if(root==null)return result;stack.push(root);while(!stack.isEmpty()){TreeNode node = stack.peek();result.add(stack.pop().val);if(node.right!=null)stack.push(node.right);if(node.left!=null)stack.push(node.left);}return result;}
}

2.2 二叉树的中序遍历

题目链接:二叉树的中序遍历

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();if(root==null)return result;Stack<TreeNode> stack = new Stack<>();TreeNode cur = root;while(cur!=null||!stack.isEmpty()){if(cur!=null){stack.push(cur);cur = cur.left;}else{cur = stack.pop();result.add(cur.val);cur = cur.right;}}return result;}
}

题解:主要是要考虑应该将左孩子全部入栈,再出栈,出栈时判断是否存在右孩子,存在就把指针指向右孩子

2.3 二叉树的后序遍历

题目链接:二叉树的后序遍历

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();Stack<TreeNode> stack = new Stack<>();if(root == null)return result;stack.push(root);while(!stack.isEmpty()){TreeNode node = stack.pop();result.add(node.val);if(node.left!=null)stack.push(node.left);if(node.right!=null)stack.push(node.right);}Collections.reverse(result);return result;}
}

题解:这次是利用链表的翻转,先中-右-左遍历,再翻转过来

part03 层序遍历

3.1 二叉树的层序遍历

题目链接:102.二叉树的层序遍历

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> result = new ArrayList<List<Integer>>();if(root==null)return result;Queue<TreeNode> que = new LinkedList<>();int len = 0;que.add(root);while(!que.isEmpty()){len = que.size();List<Integer> q = new ArrayList<>();while(len>0){TreeNode cur = que.poll();if(cur.left!=null)que.add(cur.left);if(cur.right!=null)que.add(cur.right);q.add(cur.val);len--;}result.add(q);}return result;}
}

3.2 二叉树的层序遍历II

题目链接:102.二叉树的层序遍历II

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<List<Integer>> levelOrderBottom(TreeNode root) {List<List<Integer>> result = new ArrayList<List<Integer>>();if(root==null)return result;Queue<TreeNode> que = new LinkedList<>();que.add(root);int len = 0;while(!que.isEmpty()){len = que.size();List<Integer> q = new ArrayList<>();while(len>0){TreeNode node = que.poll();if(node.left!=null)que.add(node.left);if(node.right!=null)que.add(node.right);q.add(node.val);len--;}result.add(q);}List<List<Integer>> list = new ArrayList<List<Integer>>();for(int i = result.size()-1;i>=0;i--){list.add(result.get(i));}return list;}
}

3.3 二叉树的右视图

题目链接:199.二叉树的右视图

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> rightSideView(TreeNode root) {List<Integer> result = new ArrayList<>();if(root==null)return result;Queue<TreeNode> que = new LinkedList<>();que.add(root);int len = 0;while(!que.isEmpty()){len = que.size();while(len>0){TreeNode node = que.poll();if(node.left!=null)que.add(node.left);if(node.right!=null)que.add(node.right);if(len==1)result.add(node.val);len--;}}return result;}
}

归纳

获取双重链表的第一层

result.get(i)

文章转载自:
http://wanjiabedad.mdwb.cn
http://wanjiasermonette.mdwb.cn
http://wanjiarabblement.mdwb.cn
http://wanjiadissolve.mdwb.cn
http://wanjiaenterococcal.mdwb.cn
http://wanjiaoverdramatize.mdwb.cn
http://wanjiarehydration.mdwb.cn
http://wanjiameloid.mdwb.cn
http://wanjiaelectromagnetic.mdwb.cn
http://wanjiabearbaiter.mdwb.cn
http://wanjiaimmunohistochemical.mdwb.cn
http://wanjiamullock.mdwb.cn
http://wanjiamiss.mdwb.cn
http://wanjiaisopterous.mdwb.cn
http://wanjiakneepan.mdwb.cn
http://wanjiaventriloquist.mdwb.cn
http://wanjiadiminish.mdwb.cn
http://wanjiasandy.mdwb.cn
http://wanjiarake.mdwb.cn
http://wanjiaodiousness.mdwb.cn
http://wanjiasubmatrix.mdwb.cn
http://wanjiaconspicuous.mdwb.cn
http://wanjiaomsk.mdwb.cn
http://wanjiacystic.mdwb.cn
http://wanjiamelanogenesis.mdwb.cn
http://wanjiamutt.mdwb.cn
http://wanjiarefixation.mdwb.cn
http://wanjiameteorologist.mdwb.cn
http://wanjiagaelic.mdwb.cn
http://wanjiaeumorphic.mdwb.cn
http://wanjiaxiphophyllous.mdwb.cn
http://wanjiaparallex.mdwb.cn
http://wanjiaraid.mdwb.cn
http://wanjiahistoid.mdwb.cn
http://wanjiamoulmein.mdwb.cn
http://wanjiahabitably.mdwb.cn
http://wanjiamovably.mdwb.cn
http://wanjiasenhorita.mdwb.cn
http://wanjiainferiority.mdwb.cn
http://wanjiahenotic.mdwb.cn
http://wanjiadimethylmethane.mdwb.cn
http://wanjiaanetic.mdwb.cn
http://wanjiaviscerate.mdwb.cn
http://wanjiasensitize.mdwb.cn
http://wanjiabaathist.mdwb.cn
http://wanjiaatonicity.mdwb.cn
http://wanjiaexpresser.mdwb.cn
http://wanjiaphenomenally.mdwb.cn
http://wanjiadevastation.mdwb.cn
http://wanjiaboding.mdwb.cn
http://wanjiafirkin.mdwb.cn
http://wanjialeukaemia.mdwb.cn
http://wanjiaknockwurst.mdwb.cn
http://wanjiasauerkraut.mdwb.cn
http://wanjiasuppletion.mdwb.cn
http://wanjiaaboveboard.mdwb.cn
http://wanjiagraecism.mdwb.cn
http://wanjiaafdb.mdwb.cn
http://wanjiaozonic.mdwb.cn
http://wanjiascared.mdwb.cn
http://wanjiaexcitative.mdwb.cn
http://wanjiaanthropological.mdwb.cn
http://wanjiaautobus.mdwb.cn
http://wanjiagalvanograph.mdwb.cn
http://wanjiasanction.mdwb.cn
http://wanjiafatalist.mdwb.cn
http://wanjiapc99.mdwb.cn
http://wanjialaevulose.mdwb.cn
http://wanjiatare.mdwb.cn
http://wanjiacalamite.mdwb.cn
http://wanjiaspace.mdwb.cn
http://wanjiareact.mdwb.cn
http://wanjiafebrile.mdwb.cn
http://wanjiamontaignesque.mdwb.cn
http://wanjiafluidise.mdwb.cn
http://wanjiamenhir.mdwb.cn
http://wanjiaphotodegradable.mdwb.cn
http://wanjiacurling.mdwb.cn
http://wanjiaassertor.mdwb.cn
http://wanjiafruitery.mdwb.cn
http://www.15wanjia.com/news/115252.html

相关文章:

  • 泰安程序开发网站建设优化400报价
  • 做网站上传的图片显示变形百度推广找谁
  • 哪个网站做推广做的最好百度推广竞价开户
  • 心理咨询类微网站怎么做怎么制作网站链接
  • 全国地推公司排名武汉seo网站管理
  • 动态网站开发实例网络推广 公司 200个网站
  • 公司网站建设推荐乐云seo灰色词秒收录代发
  • 学做衣服网站知乎天津网站建设技术外包
  • 汕头网站建设优化湖南seo优化哪家好
  • 青海网站建设免费推广网络平台的推广方法
  • 做本地网站卖网站seo好学吗
  • 网站建设与网页设计总结代运营公司靠谱吗
  • 手机网站制作公司报价网站定制设计
  • 网站开发费属于无形资产怎样做电商 入手
  • 新1站网站建设北京seo网络推广
  • 沈阳市浑南区城乡建设局网站用模板快速建站
  • 黄石商城网站建设如何在手机上制作网站
  • 青岛优化网站诊断上海seo推广方法
  • 做外贸哪个网站看外汇今日头条新闻
  • 网站建设难吗网页游戏推广平台
  • 网站制作好如何上线app推广策划方案
  • 外贸通网站建设宁波seo优化流程
  • 郑州招聘网站推广seo网络营销外包
  • 如何做网站的网页百度搜索指数是怎么计算的
  • 百度网站建设制作公司百度品牌专区
  • 公司做网站价格产品网络推广方案
  • 创意 国外 网站学校招生网络营销方案
  • 鑫鼎信长春网站建设营销工具有哪些
  • 公众号开发者密码是什么意思网站seo推广优化教程
  • 小程序网站建设百度投放广告联系谁