返回

刷题必备:杨辉三角变形与二叉树镜像的通关秘籍

后端

杨辉三角的变形

杨辉三角是一种排列成三角形且满足特定规律的数组。杨辉三角的变形题通常要求对原有三角形进行操作,并输出变形后的结果。

在本例中,题目要求将杨辉三角每一层的元素倒序排列,形成一个新的三角形。

import java.util.ArrayList;
import java.util.List;

public class PascalTriangle变形 {

    public static void main(String[] args) {
        int numRows = 5;
        List<List<Integer>> triangle = generate(numRows);
        for (List<Integer> row : triangle) {
            Collections.reverse(row);
        }
        System.out.println(triangle);
    }

    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> triangle = new ArrayList<>();
        for (int i = 0; i < numRows; i++) {
            List<Integer> row = new ArrayList<>();
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i) {
                    row.add(1);
                } else {
                    row.add(triangle.get(i - 1).get(j - 1) + triangle.get(i - 1).get(j));
                }
            }
            triangle.add(row);
        }
        return triangle;
    }
}

二叉树的镜像

二叉树是一种重要的数据结构,由结点和边组成。一个结点可能包含数据,并具有零个或多个子结点。二叉树的镜像题通常要求将原有二叉树的左右子树交换,形成一个镜像二叉树。

在本例中,题目要求对给定的二叉树进行镜像变换,并返回镜像后的二叉树。

public class 二叉树的镜像 {

    public static void main(String[] args) {
        TreeNode root = new TreeNode(4);
        root.left = new TreeNode(2);
        root.right = new TreeNode(7);
        root.left.left = new TreeNode(1);
        root.left.right = new TreeNode(3);
        root.right.left = new TreeNode(6);
        root.right.right = new TreeNode(9);
        TreeNode mirror = mirrorTree(root);
        System.out.println(mirror);
    }

    public static TreeNode mirrorTree(TreeNode root) {
        if (root == null) {
            return null;
        }
        TreeNode left = mirrorTree(root.left);
        TreeNode right = mirrorTree(root.right);
        root.left = right;
        root.right = left;
        return root;
    }

    public static class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;

        TreeNode(int val) {
            this.val = val;
        }
    }
}

通过对这些题目的详细分析,读者可以深刻理解杨辉三角的构造和变形规律,以及二叉树的镜像变换过程。掌握这些算法技巧,将极大提升刷题效率,为进阶算法学习和实际应用奠定基础。