用java写一个二叉树中序遍历
时间: 2023-03-30 15:01:10 浏览: 54
可以使用以下代码来实现二叉树的中序遍历:
public void inorderTraversal(TreeNode root) {
if (root == null) {
return;
}
inorderTraversal(root.left);
System.out.print(root.val + " ");
inorderTraversal(root.right);
}
其中,TreeNode 表示二叉树的节点,包含左右子节点和节点值。在遍历时,先遍历左子树,再输出当前节点的值,最后遍历右子树。
相关问题
用java写一个二叉树中序遍历把
二叉树的中序遍历是指遍历二叉树的所有节点,使得遍历的顺序是:左子树 -> 根节点 -> 右子树。
以下是用 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;
}
}
```
该代码使用了一个栈来辅助遍历,实现了递归版本的中序遍历的非递归版本。
用java写二叉树中序遍历
二叉树中序遍历的 Java 代码如下:
```
public void inorderTraversal(TreeNode root) {
if (root == null) {
return;
}
inorderTraversal(root.left);
System.out.print(root.val + " ");
inorderTraversal(root.right);
}
```
其中,`TreeNode` 是二叉树节点的定义,包含 `val`、`left` 和 `right` 三个属性。