> 文章列表 > 94. 二叉树的中序遍历【119】

94. 二叉树的中序遍历【119】

94. 二叉树的中序遍历【119】

难度等级:容易

上一篇算法:

102. 二叉树的层序遍历【206】

力扣此题地址:

94. 二叉树的中序遍历 - 力扣(Leetcode)

1.题目:94. 二叉树的中序遍历

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

2.解题思路:

中序遍历:左节点-->根节点-->右节点

中序遍历方法的代码实现:

1.先判断树是否为null

2.中序遍历就是先递归左子树,再将根节点添加到list中,最后再递归右子树

二叉树概念及基本功能实现

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> inorderTraversal(TreeNode root) {//先创建一个list作为返回List<Integer> res = new ArrayList<Integer>();//调用中序遍历方法inorder(root,res);//返回链表return res;}public void inorder(TreeNode root, List<Integer> res) {//判断是否为null,也是递归的终止条件if (root == null) {return;}//中序遍历思路就是:先递归左子树,再打印或添加根节点,最后递归右子树inorder(root.left, res);res.add(root.val);inorder(root.right, res);}
}

注:由上面代码规律可以看出,除了根节点是直接打印其值之外,左节点、右节点都是通过递归遍历的方式遍历到。如:

前序遍历:添加根节点--->递归遍历左节点--->递归遍历右节点

中序遍历:递归遍历左节点--->添加根节点--->递归遍历右节点

后序遍历:递归遍历左节点--->递归遍历右节点--->添加根节点