概述
1. 前序遍历
描述:
打印顺序为: 根左右
思路:
考虑使用递归的方法
(1)先定义一个List类型的变量ret来保存返回值
(2)定义一个方法来进行递归操作(传入当前的根节点和res),若根为空return。
因为是根左右的方式,所以先把root的值存到res.add里,然后再递归左孩子和右孩子
(3)递归完成后返回res即可
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
preorder(root, res);
return res;
}
public void preorder(TreeNode root, List<Integer> res){
if(root == null) return;
res.add(root.val);
preorder(root.left, res);
preorder(root.right, res);
}
}
2. 中序遍历
描述:
打印顺序为:左根右
思路:
考虑使用递归的方法
(1)先定义一个List类型的变量ret来保存返回值
(2)定义一个方法来进行递归操作(传入当前的根节点和res),若根为空return。
因为是 左根右 的方式,所以先递归左孩子,再把root的值存到res.add里,最后再递归右孩子
(3)递归完成后返回res即可
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
preorder(root, res);
return res;
}
public void preorder(TreeNode root, List<Integer> res){
if(root == null) return;
preorder(root.left, res);
res.add(root.val);
preorder(root.right, res);
}
}
3. 后序遍历
描述:
打印顺序为:左右根
思路:
考虑使用递归的方法
(1)先定义一个List类型的变量ret来保存返回值
(2)定义一个方法来进行递归操作(传入当前的根节点和res),若根为空return。
因为是 左右根 的方式,所以先递归左孩子和右孩子,再把root的值存到res.add里
(3)递归完成后返回res即可
class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
postorder(root, res);
return res;
}
public void postorder(TreeNode root, List<Integer> res){
if(root == null) return;
postorder(root.left, res);
postorder(root.right, res);
res.add(root.val);
}
}
最后
以上就是天真乐曲为你收集整理的递归方法遍历完全二叉树1. 前序遍历2. 中序遍历3. 后序遍历的全部内容,希望文章能够帮你解决递归方法遍历完全二叉树1. 前序遍历2. 中序遍历3. 后序遍历所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复