力扣热题100 234.回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。

力扣热题100 234.回文链表_第1张图片

解法:利用栈先进先出的特点,存储每个结点的值,然后反向比对n/2个元素即可。

class Solution {
public:
    bool isPalindrome(ListNode* head) {

        stackst;
        ListNode * pre = head;
        ListNode * tail = head;
        int num=0;
        while(tail!=nullptr)
        {
            st.push(tail->val);
            tail=tail->next;
            num++;
        }
        for(int i=0;i<=num/2;i++)
        {   
            int x = st.top();st.pop();
            if(pre->val!=x) return false;
            pre=pre->next;
        }
        return true;
    }
};

你可能感兴趣的:(笔试面试算法题练习集,leetcode,链表,算法)