leetcode234. 回文链表

题目

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

示例 1:

输入:head = [1,2,2,1]
输出:true

示例 2:

输入:head = [1,2]
输出:false

提示:

  • 链表中节点数目在范围[1, 105] 内
  • 0 <= Node.val <= 9

 方法一

思路:

将链表转为数组,然后双指针判断即可。

代码

class Solution {
public:
    bool isPalindrome(ListNode* head) {
        vector<int> vt; // 栈存放数组
        while(head){    // 链表 -> 栈
            vt.push_back(head->val);
            head = head->next;
        }
        // 定义双指针来对数组进行回文判断
        int left = 0, right = vt.size()-1;
        while(left < right){
            if(vt[left++] != vt[right--]){
                return false;
            }
        }
        return true;
    }
};

learn

这里因数组大小不好定义,所以可以使用 栈vector

方法二

反转链表,同时遍历,若不同,则返回false。

不知道为何这个方法总是返回false

 ListNode* reverseList(ListNode* head) {
        ListNode* prev = nullptr;
        ListNode* cur = head;
        ListNode* next;
        while(cur){
            next = cur->next;   // cur的后面结点
            cur->next = prev;   // cur的前面结点
            prev = cur;
            cur = next;            
        }
        return prev;
    }
class Solution {    
public:
    bool isPalindrome(ListNode* head) {
        ListNode* reverse = reverseList(head);
        while(reverse && head){
            if(reverse->val != head->val){
                return false;
            }
            reverse = reverse->next;
            head = head->next;
        }
        return true;
    }
};

相关推荐

  1. leetcode 234

    2024-01-18 14:56:01       48 阅读
  2. 234.

    2024-01-18 14:56:01       38 阅读
  3. 234.

    2024-01-18 14:56:01       34 阅读
  4. 234.

    2024-01-18 14:56:01       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 14:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 14:56:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 14:56:01       82 阅读
  4. Python语言-面向对象

    2024-01-18 14:56:01       91 阅读

热门阅读

  1. Mybatis generator配置(超详细)

    2024-01-18 14:56:01       53 阅读
  2. 04--MySQL函数的使用

    2024-01-18 14:56:01       63 阅读
  3. 【知识---c++中seekg、tellg使用】

    2024-01-18 14:56:01       53 阅读
  4. 【算法基础 & 数学】欧拉函数

    2024-01-18 14:56:01       52 阅读
  5. c ffmpeg 学习

    2024-01-18 14:56:01       55 阅读
  6. Rust类型之数组和动态数组

    2024-01-18 14:56:01       55 阅读
  7. PyTorch 稀疏函数解析:embedding 、one_hot详解

    2024-01-18 14:56:01       60 阅读