Java语言怎么用紧凑的模式输出一个二叉树构成的矩阵联通表的呢?什么叫做紧凑模式,在这里用它的优势是什么的呢
2条回答 默认 最新
关注效果如图:

代码如下 :import java.util.*; class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int val) { this.val = val; this.left = null; this.right = null; } } public class BinaryTreeCompactMatrix { public static TreeNode buildTree(int[] nums, int index) { if (index >= nums.length || nums[index] == -1) { return null; } TreeNode root = new TreeNode(nums[index]); root.left = buildTree(nums, 2 * index + 1); root.right = buildTree(nums, 2 * index + 2); return root; } public static void printCompactMatrix(TreeNode root) { List<Integer> result = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); if (root != null) { queue.offer(root); } while (!queue.isEmpty()) { TreeNode node = queue.poll(); result.add(node.val); if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } // 打印输出结果 for (Integer val : result) { System.out.print(val + " "); } } public static void main(String[] args) { int[] nums = {1, 2, 3, 4, -1, 5, 6}; TreeNode root = buildTree(nums, 0); printCompactMatrix(root); } }代码理解:
代码中我定义一个 TreeNode类来表示二叉树节点. buildTree方法根据给定的节点值数组构建二叉树,printCompactMatrix方法按照紧凑模式输出矩阵联通表。在main方法中,我们创建一个示例数组nums并构建二叉树,然后调用printCompactMatrix方法输出矩阵联通表的紧凑模式结果。本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用