Создайте и распечатайте связанный список значений int заданной длины в Java.

1
8

Сначала создайте связанный список, затем распечатайте его, а затем измерьте его длину:

Сейчас я использую параметр для расчета длины. Я пытался сделать его необязательным параметром, но это не сработало. Чтобы getLinkedListLength работал, параметр должен быть инициализирован нулем.

Есть ли лучший способ сделать это?

Я разработчик C# и использую Java в качестве изучение языка для решения проблем с codeом. Для меня это было бы легко сделать на C#, но не на Java.

// Simple linked list class
public class ListNode {
    int val;
    ListNode next;

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

// Build a linked list of ints of a given length
public static ListNode buildLinkedList(int length) {
    ListNode head = new ListNode(1);
    ListNode currNode = head;
    for (int i = 2; i <= length; i++) {
        System.out.println("i = " + i);
        currNode.next = new ListNode(i);
        currNode = currNode.next;
    }
    return head;
}

// Calculate the length
static int getLinkedListLength(ListNode head, int length) {
    if (head == null) {
        return length;
    }
    length++;
    return getLinkedListLength(head.next, length);
}

// Print the linked list
public static void printLinkedList(ListNode node) {
    System.out.print("Linked list = [");

    while (node.next != null) {
        System.out.print(node.val + ", ");
        node = node.next;
    }
    System.out.print(node.val);
    System.out.print("]");
    System.out.println();
}

// Test code
ListNode node = LinkedLists.buildLinkedList(5);
printLinkedList(node);
System.out.println("Length: " + getLinkedListLength(node, 0));
Вышеслав
Вопрос задан7 января 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.