【力扣hot100题】(122)回文链表

只会先化为数组的做法,看答案了解了一下递归做法,不过空间复杂度没区别,但是挺巧妙的。

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode *h;
    bool isPalindrome(ListNode* head) {
        h=head;
        return dg(head);
    }
    bool dg(ListNode* node){
        node=node->next;
        if(node==NULL) return 1;
        bool b=dg(node);
        if(node->val!=h->val) return 0;
        h=h->next;
        return b;
    }
};

看了答案中空间复杂度O(1)的做法,其实难想到,就是用快慢指针找到中间点,之后将后半段反转。

相关推荐
j_xxx404_3 分钟前
蓝桥杯基础--时间复杂度
数据结构·c++·算法·蓝桥杯·排序算法
2501_945423547 分钟前
C++跨平台开发实战
开发语言·c++·算法
Oueii10 分钟前
分布式系统监控工具
开发语言·c++·算法
xushichao198937 分钟前
C++中的中介者模式
开发语言·c++·算法
MORE_7739 分钟前
leecode100-买卖股票的最佳时期-贪心算法
python·算法·贪心算法
AI科技星42 分钟前
基于wr/c + h/c = 1的螺旋线矢量特性及应用分析
c语言·开发语言·人工智能·opencv·算法·计算机视觉·r语言
颜酱1 小时前
回溯算法专项突破练习(1)
javascript·后端·算法
进击的荆棘1 小时前
优选算法——分治
数据结构·算法·leetcode·分治
Yupureki1 小时前
《实战项目-个人在线OJ平台》1.项目简介和演示
c语言·数据结构·c++·sql·算法·性能优化·html5
m0_579393661 小时前
C++代码混淆与保护
开发语言·c++·算法