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

宁德公司做网站潍坊seo建站

宁德公司做网站,潍坊seo建站,公众号在哪里找,68网页设计欣赏二叉树遍历方法总结 二叉树的遍历总体上分为深度优先遍历和广度优先遍历。常见的前中后序三种遍历方式就属于深度优先遍历,遍历过程中是顺着一条路径一直遍历到空节点然后向上回溯继续顺着遍历上一个节点的其他方向。层序遍历属于广度优先遍历,先遍历完同…

二叉树遍历方法总结

 二叉树的遍历总体上分为深度优先遍历和广度优先遍历。常见的前中后序三种遍历方式就属于深度优先遍历,遍历过程中是顺着一条路径一直遍历到空节点然后向上回溯继续顺着遍历上一个节点的其他方向。层序遍历属于广度优先遍历,先遍历完同一层的节点,再接着遍历下一层节点。
 本文主要介绍二叉树三种深度优先遍历方式的实现方式:递归方式和非递归方式。
 递归方式实现如下。
 前序遍历-力扣144:

/*** 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 LinkedList<>();if (root == null) {return result;}preOrder(root,result);return result;}private void preOrder(TreeNode current,List<Integer> result) {if (current != null) {result.add(current.val);preOrder(current.left,result);preOrder(current.right,result);}}
}

 中序遍历-力扣94,就是把前序中的处理节点的顺序调整一下。

private void inOrder(TreeNode current,List<Integer> result) {if (current != null) {          inOrder(current.left,result);result.add(current.val);inOrder(current.right,result);}
}

 后序遍历-力扣145,将节点处理顺序调整到最后:

private void inOrder(TreeNode current,List<Integer> result) {if (current != null) {          inOrder(current.left,result);           inOrder(current.right,result);result.add(current.val);}
}

 非递归方式实现如下。
 前序遍历-力扣144,利用栈保存访问过的节点,每访问一个节点,就处理一个。

class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result = new LinkedList<>();if (root == null) {return result;}Deque<TreeNode> stack = new LinkedList<>();stack.push(root);while (!stack.isEmpty()) {TreeNode tempNode = stack.pop();result.add(tempNode.val);if (tempNode.right != null) {stack.push(tempNode.right);}if (tempNode.left != null) {stack.push(tempNode.left);}}return result;}
}

 中序遍历-力扣94

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> result = new LinkedList<>();if (root == null) {return result;}Deque<TreeNode> stack = new LinkedList<>();TreeNode current = root;while (!stack.isEmpty() || current != null) {if (current != null) {stack.push(current);current = current.left;} else {TreeNode tempNode = stack.pop();result.add(tempNode.val);current = tempNode.right;}}return result;} 
}

 后序遍历-力扣145,后序遍历可以当成是把前序遍历顺序改变一下,从前序的中左右变成中右左,然后再把结果倒置。

class Solution {//后序遍历public List<Integer> postorderTraversal(TreeNode root) {List<Integer> result = new LinkedList<>();if (root == null) {return result;}Deque<TreeNode> stack = new LinkedList<>();stack.push(root);TreeNode cur = root;while (!stack.isEmpty()) {TreeNode tempNode = stack.pop();result.add(tempNode.val);if (tempNode.left != null) {stack.push(tempNode.left);}if (tempNode.right != null) {stack.push(tempNode.right);}}Collections.reverse(result);return result;}}
http://www.tj-hxxt.cn/news/22839.html

相关文章:

  • 深圳的网站建设公司seo运营人士揭秘
  • 可以做围棋题的网站网址收录
  • 哪些网站可以做百科来源seo白帽优化
  • 营销网站建设解决方案seo网站诊断报告
  • seo优化一般包括哪些内容()。泰州网站整站优化
  • 达日县网站建设公司百度搜索网站排名
  • 广州新型冠状病毒最新消息南京seo招聘
  • 企业核名网站武汉网站seo公司
  • 淘宝网站推广策划方案西安网站建设比较好的公司
  • 杭州维利国德网站建设案例网络营销比较成功的企业
  • 房地产首页设计seo优化排名易下拉效率
  • 陕西的建设厅官方网站专业seo推广
  • 网站设计内容包括舆情网站直接打开怎么弄
  • wordpress 电脑测试百度词条优化
  • 做一个二手网站怎么做三十个知识点带你学党章
  • 如何制作网站视频的软件什么是网络营销战略
  • 成品网站管理系统源码域名查询入口
  • 家装设计方案ppt案例百度seo词条优化
  • 网站首页作用专业搜索引擎seo技术公司
  • 南充 网站建设国内重大新闻10条
  • 大型大型网站建设方案今天热点新闻事件
  • 企腾做的网站怎么样抖音广告代运营
  • 自己做网站自己做SEO上海优化seo排名
  • 网站开发实现的环境培训机构不退钱最怕什么举报
  • 如何提高网站排名官网seo
  • 营销技巧分享杭州seo网站排名
  • 电商网站页面布局女教师遭网课入侵视频大全集
  • 湖北省建设厅网站资质sem竞价托管公司
  • wordpress 获取缩略图青岛seo公司
  • 临沂做网站费用长沙百度关键词推广