问题:
给定一个二叉树的根节点 root ,返回它的 中序 遍历。
示例 1:
输入:root = [1,null,2,3]
输出:[1,3,2]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
示例 4:
输入:root = [1,2]
输出:[2,1]
示例 5:
输入:root = [1,null,2]
输出:[1,2]
提示:
树中节点数目在范围 [0, 100] 内
-100 <= Node.val <= 100
解答思路:
以下是使用递归方法实现二叉树的中序遍历的 Java 代码示例:
class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int val) {this.val = val;}}public class InorderTraversal {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();inorderTraversalHelper(root, result);return result;}private void inorderTraversalHelper(TreeNode root, List<Integer> result) {if (root!= null) {inorderTraversalHelper(root.left, result);result.add(root.val);inorderTraversalHelper(root.right, result);}}public static void main(String[] args) {// 构建示例二叉树TreeNode root = new TreeNode(1);root.right = new TreeNode(2);root.right.left = new TreeNode(3);InorderTraversal traversal = new InorderTraversal();List<Integer> result = traversal.inorderTraversal(root);// 打印中序遍历结果for (Integer val : result) {System.out.print(val + " ");}}}
上述代码中,首先定义了一个'TreeNode'类来表示二叉树的节点。然后,'inorderTraversal'方法接受二叉树的根节点作为参数,并通过调用'inorderTraversalHelper'辅助方法来进行中序遍历。辅助方法使用递归的方式,先遍历左子树,然后访问当前节点,最后遍历右子树,并将遍历到的值添加到结果列表中。在'main'方法中,我们构建了一个示例的二叉树,并调用'inorderTraversal'方法进行中序遍历,最后打印出遍历结果。
(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)