dabocaiqq 2023-07-18 21:32 采纳率: 52.1%
浏览 12
已结题

关于#java#的问题:Java语言怎么用紧凑的模式输出一个二叉树构成的矩阵联通表的呢

Java语言怎么用紧凑的模式输出一个二叉树构成的矩阵联通表的呢?什么叫做紧凑模式,在这里用它的优势是什么的呢

  • 写回答

2条回答 默认 最新

  • 全栈若城 新星创作者: 编程技术技术领域 2023-07-18 22:48
    关注

    效果如图:

    img


    代码如下 :

    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条)

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 创建了问题 7月18日