数据结构和算法分析数据结构与算法

Leetcode-面试题 02.06 回文链表

2021-10-08  本文已影响0人  itbird01

面试题 02.06. 回文链表

解题思路

1.第一次遍历得到链表的size
2.初始化大小为size的数组,并且发起第二次遍历,进行数组赋值
3.遍历数组,进行收尾对比,是否相等

解题遇到的问题

后续需要总结学习的知识点

能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

##解法
class Solution {
    public boolean isPalindrome(ListNode head) {
        ListNode t = head;
        int i = 0;
        while (t != null) {
            i++;
            t = t.next;
        }

        t = head;
        int[] temp = new int[i];
        i = 0;
        while (t != null) {
            temp[i++] = t.val;
            t = t.next;
        }

        for (int k = 0, j = temp.length - 1; k <= j; k++, j--) {
            if (temp[k] != temp[j]) {
                return false;
            }
        }
        return true;
    }

    public class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
            val = x;
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读