Leetcode-面试题 02.06 回文链表

作者: itbird01 | 来源:发表于2021-10-08 10:51 被阅读0次

    面试题 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;
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:Leetcode-面试题 02.06 回文链表

        本文链接:https://www.haomeiwen.com/subject/uwqrnltx.html