LeetCode 234.Palindrome Linked List

来源:互联网 发布:获取当前系统时间 java 编辑:程序博客网 时间:2024/05/17 08:08

Palindrome Linked List

Description
Given a singly linked list, determine if it is a palindrome.

Follow up:
Could you do it in O(n) time and O(1) space?

Analysis
这道题的意思其实就是要我们判断链表是否为回文链表,而且对时间与空间复杂度都有要求。
我认为其实判断链表是否为回文链表,与判断数组或者向量是不是回文一样。
所以我的做法是把所有所有链表中的值都记录在一个向量中。
通过判断向量是否回文来确定链表是否回文。

Code

#include<iostream>#include<vector>using namespace std;/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    bool isPalindrome(ListNode* head) {        vector<int> vec;        ListNode* t = head;        bool res = true;        while(t!=NULL){            vec.push_back(t->val);            t = t->next;        }        for(int i = 0 , j = vec.size()-1;i<j;++i,--j){            if(vec[i]!=vec[j]){                res = false;                break;            }        }        return res;    }};
0 0
原创粉丝点击