用java写一个二叉树中序遍历把
时间: 2023-02-25 09:43:34 浏览: 27
二叉树的中序遍历是指遍历二叉树的所有节点,使得遍历的顺序是:左子树 -> 根节点 -> 右子树。
以下是用 Java 实现二叉树中序遍历的代码示例:
```
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
Stack<TreeNode> stack = new Stack<>();
TreeNode curr = root;
while (curr != null || !stack.isEmpty()) {
while (curr != null) {
stack.push(curr);
curr = curr.left;
}
curr = stack.pop();
result.add(curr.val);
curr = curr.right;
}
return result;
}
}
```
该代码使用了一个栈来辅助遍历,实现了递归版本的中序遍历的非递归版本。
阅读全文