网络知识
java输出二叉树的结点和深度
2026-04-02 15:47  点击:0

在Java中如何输出二叉树的结点和深度呢?

public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}public void printTree(TreeNode node) {if (node == null) {return;}// 输出当前结点System.out.println("结点值为:" + node.val);// 如果左子树不为空,则输出左子树的结点和深度if (node.left != null) {System.out.println("左子树结点值为:" + node.left.val + ",深度为:" + getDepth(node.left));printTree(node.left);}// 如果右子树不为空,则输出右子树的结点和深度if (node.right != null) {System.out.println("右子树结点值为:" + node.right.val + ",深度为:" + getDepth(node.right));printTree(node.right);}}public int getDepth(TreeNode node) {if (node == null) {return 0;}int leftDepth = getDepth(node.left);int rightDepth = getDepth(node.right);return Math.max(leftDepth, rightDepth) + 1;}

以上代码定义了一个二叉树结点的数据结构,并提供了两个方法来输出二叉树的结点和深度。

具体实现中:

  • printTree()方法首先输出当前结点的值,然后递归输出左子树和右子树,直到整棵树被遍历完。
  • getDepth()方法计算当前结点的深度,如果结点为空返回0,否则返回左子树和右子树深度的最大值再加上1。

利用上述代码,我们可以非常简单地输出一棵二叉树的结点和深度,从而更加深入地理解这种数据结构。