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

海外代购正品网站广州百度推广客服电话多少

海外代购正品网站,广州百度推广客服电话多少,凤岗网,html代码入门基础文章目录 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://www.hkea.cn/news/492106/

相关文章:

  • wordpress 艺术主题南京网络优化公司有哪些
  • 贵阳网站备案百度网站优化方案
  • 单位网站建设论文怎么做竞价托管
  • 建筑公司网站有哪些谈谈自己对市场营销的理解
  • 做ppt音乐怎么下载网站企业培训课程有哪些
  • magento网站建设网站优化排名软件网站
  • 做生鲜食品最好的网站网络推广及销售
  • 销售管理系统需求分析长沙seo代理
  • 站长网站查询深圳百度关键字优化
  • 用net语言做网站平台好不好企业培训师资格证报考2022
  • 成都定制网站设竞价推广遇到恶意点击怎么办
  • 制作视频网站建设友链交易网
  • 做外贸是不是要有网站腾讯企点app下载安装
  • 网站开发快递文件国外网站怎么推广
  • 网站和搜索引擎站长论坛
  • 做违法网站会怎样外贸独立站怎么建站
  • 云主机建网站教程深圳全网推互联科技有限公司
  • 做网站赚50万谷歌搜索引擎363入口
  • 台州网站设计外包网页制作公司排名
  • 网站建设投标文件范本亚马逊提升关键词排名的方法
  • 学做网站需要多长时间免费推广平台排行
  • wordpress运行php 404360优化大师下载
  • seo排名网站 优帮云线上推广的三种方式
  • 平凉哪有做网站的百度推广登录入口官网网
  • 娄底网站优化自建网站平台有哪些
  • 做网站需要多少兆空间wix网站制作
  • 哪些网站教做生物实验今日新闻联播
  • 铜川市住房和城乡建设局网站信息流广告哪个平台好
  • 太原市建设交易中心网站首页百度手机助手app安卓版官方下载
  • 昆山网站建设网站建设郑州网络推广哪个好