用java写出中序遍历
时间: 2024-05-24 13:07:17 浏览: 110
中序遍历是二叉树遍历的一种方式,它的遍历顺序是先遍历左子树,然后访问根节点,最后遍历右子树。下面是用Java实现中序遍历的代码:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
public class InorderTraversal {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
inorder(root, result);
return result;
}
private void inorder(TreeNode node, List<Integer> result) {
if (node == null) {
return;
}
inorder(node.left, result);
result.add(node.val);
inorder(node.right, result);
}
}
```
以上代码中,`TreeNode`是二叉树节点的定义,`InorderTraversal`是中序遍历的实现类。`inorderTraversal`方法接收一个二叉树的根节点作为参数,返回中序遍历的结果。`inorder`方法是递归实现的核心方法,它按照中序遍历的顺序将节点的值添加到结果列表中。
阅读全文