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

长沙 学校网站建设广州推广服务

长沙 学校网站建设,广州推广服务,全网获客营销系统,网站地图怎么样做更利于收录摘要 博文主要介绍二叉树的前/中/后/层遍历(递归与栈)方法 一、前/中/后/层遍历问题 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历 102. 二叉树的层序遍历 二、二叉树遍历递归解析 // 前序遍历递归LC144_二叉树的前序遍历 class Solution {publi…

摘要

博文主要介绍二叉树的前/中/后/层遍历(递归与栈)方法

一、前/中/后/层遍历问题

144. 二叉树的前序遍历

145. 二叉树的后序遍历

94. 二叉树的中序遍历

102. 二叉树的层序遍历

二、二叉树遍历递归解析

// 前序遍历·递归·LC144_二叉树的前序遍历
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<Integer>();preorder(root, result);return result;}public void preorder(TreeNode root, List<Integer> result) {if (root == null) {return;}result.add(root.val);preorder(root.left, result);preorder(root.right, result);}
}// 中序遍历·递归·LC94_二叉树的中序遍历
class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();inorder(root, res);return res;}void inorder(TreeNode root, List<Integer> list) {if (root == null) {return;}inorder(root.left, list);list.add(root.val);             // 注意这一句inorder(root.right, list);}
}// 后序遍历·递归·LC145_二叉树的后序遍历
class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();postorder(root, res);return res;}void postorder(TreeNode root, List<Integer> list) {if (root == null) {return;}postorder(root.left, list);postorder(root.right, list);list.add(root.val);             // 注意这一句}
}

三、二叉树遍历栈解析

 

// 前序遍历顺序:中-左-右,入栈顺序:中-右-左
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();if (root == null){return result;}Stack<TreeNode> stack = new Stack<>();stack.push(root);while (!stack.isEmpty()){TreeNode node = stack.pop();result.add(node.val);if (node.right != null){stack.push(node.right);}if (node.left != null){stack.push(node.left);}}return result;}
}// 中序遍历顺序: 左-中-右 入栈顺序: 左-右
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;}
}// 后序遍历顺序 左-右-中 入栈顺序:中-左-右 出栈顺序:中-右-左, 最后翻转结果
class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();if (root == null){return result;}Stack<TreeNode> stack = new Stack<>();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;}
}

四、二叉树层序遍历解析

// 102.二叉树的层序遍历
class Solution {public List<List<Integer>> resList = new ArrayList<List<Integer>>();public List<List<Integer>> levelOrder(TreeNode root) {//checkFun01(root,0);checkFun02(root);return resList;}public void checkFun02(TreeNode node) {if (node == null) return;Queue<TreeNode> que = new LinkedList<TreeNode>();que.offer(node);while (!que.isEmpty()) {List<Integer> itemList = new ArrayList<Integer>();int len = que.size();while (len > 0) {TreeNode tmpNode = que.poll();itemList.add(tmpNode.val);if (tmpNode.left != null) que.offer(tmpNode.left);if (tmpNode.right != null) que.offer(tmpNode.right);len--;}resList.add(itemList);}}
}

博文参考

《leetcode》

http://www.ahscrl.com/news/679.html

相关文章:

  • javaee做网站建设中国十大热门网站排名
  • 电商网站开发语言深圳google推广
  • 网站建设内容规划站长统计代码
  • 社区营销何鹏seo
  • 西安火车站网站建设广告软文代理平台
  • 银川网站建设哪家优app下载免费安装
  • wordpress修改数据库密码忘记网站搜索排名优化
  • 温州网站建设定制seo外链建设的方法有
  • 网站链接分享做推广b2b网站有哪些
  • b2c网站平台建设费用网络广告的特点
  • 有没有做a的电影网站百度推广管家登录
  • 做建筑钢材的b2b网站有哪些网络整合营销推广
  • plone网站开发东莞网站建设做网站
  • 郑州效果图设计网站seo教材
  • wordpress进网站慢曲靖seo
  • 标准型网站建设委托合同免费网站建设哪个好
  • 郑州专业做微信网站北京百度seo排名点击软件
  • 企业网站建设合同方案网站seo哪家做的好
  • 微商城 网站制作线上宣传推广方案
  • 咨询公司税率是多少seo群发软件
  • 哪个网站做ppt佛山网站建设十年乐云seo
  • 网站制作报价多少东莞做网站的联系电话
  • 独立做网站前端数据品牌营销策划有限公司
  • 进行目的地网站建设搜索优化seo
  • 网站提交地址江西seo
  • uniapp页面设计搜索引擎优化工作
  • 沧州南皮手机网站建设百度客服人工在线咨询电话
  • app手机网站开发广州百度推广优化排名
  • 新疆建设厅统计报表网站品牌营销策划方案案例
  • 马鞍山网站建设电话网站平台有哪些