有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果链表在泛型类中是回文的,则使用java方法

这个问题似乎有很多答案,但没有一个能帮助我。我需要检查一个单链表是否是回文,并在泛型类中为它编写一个方法,但不知何故,我遗漏了一点,因为main抛出了一个异常。我使用的算法是将列表对半,然后检查它们是否相同。这是我的节目

方法是:

public boolean isPalindrome() {
        Node<T> slow_ptr = head;
        Node<T> fast_ptr = head;
        Node<T> mid_node = null;
        while (true) {
            fast_ptr = fast_ptr.next.next;
            if (fast_ptr.next == null) {
                mid_node = slow_ptr.next.next;
                break;
            }
            if (fast_ptr == null) { //in eclipse it says here Dead code?
                mid_node = slow_ptr.next;
                break;
            }
            slow_ptr = slow_ptr.next;
        }
        while (head != null && mid_node != null) {
            if (head != mid_node)
                return false;
            head = head.next;
            mid_node = mid_node.next;
        }
        return true;
    }

主要是:

import java.util.Scanner;

public class Palindrome {
    public static void main( String[] args ) {
        Scanner in = new Scanner(System.in);
        LinkedList<Integer> list = new LinkedList<>();
        int n = in.nextInt();
        for (int i = 0; i < n; i++) {
            int elem = in.nextInt();
            list.add(elem);
        }
        boolean is_pal = list.isPalindrome();
        if (is_pal) System.out.println("Palindrome");
        else System.out.println("Not a palindrom");
    }
}

共 (0) 个答案