Java函数实现树结构操作(如前/中/后序遍历、查找最小/大值等)
发布时间:2023-09-28 07:10:03
在Java中,可以使用递归方法实现树结构的操作。假设我们有一个类表示树节点,其中包含左子节点、右子节点和节点值。
首先,我们来实现树的前序遍历。前序遍历顺序是先访问根节点,再访问左子树,最后访问右子树。代码如下:
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
left = null;
right = null;
}
}
public class TreeTraversal {
public void preOrder(TreeNode root) {
if (root != null) {
System.out.print(root.val + " ");
preOrder(root.left);
preOrder(root.right);
}
}
}
接下来,我们实现树的中序遍历。中序遍历顺序是先访问左子树,然后访问根节点,最后访问右子树。代码如下:
public class TreeTraversal {
public void inOrder(TreeNode root) {
if (root != null) {
inOrder(root.left);
System.out.print(root.val + " ");
inOrder(root.right);
}
}
}
最后,我们实现树的后序遍历。后序遍历顺序是先访问左子树,然后访问右子树,最后访问根节点。代码如下:
public class TreeTraversal {
public void postOrder(TreeNode root) {
if (root != null) {
postOrder(root.left);
postOrder(root.right);
System.out.print(root.val + " ");
}
}
}
查找树的最小值和最大值也可以使用递归方法实现。代码如下:
public class TreeOperations {
public int findMin(TreeNode root) {
if (root.left == null) {
return root.val;
} else {
return findMin(root.left);
}
}
public int findMax(TreeNode root) {
if (root.right == null) {
return root.val;
} else {
return findMax(root.right);
}
}
}
通过以上的代码,我们可以实现树结构的基本操作,包括前序/中序/后序遍历和查找最小/大值等。
