【力扣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)的做法,其实难想到,就是用快慢指针找到中间点,之后将后半段反转。

相关推荐
white-persist2 小时前
【vulhub shiro 漏洞复现】vulhub shiro CVE-2016-4437 Shiro反序列化漏洞复现详细分析解释
运维·服务器·网络·python·算法·安全·web安全
FL16238631292 小时前
基于C#winform部署软前景分割DAViD算法的onnx模型实现前景分割
开发语言·算法·c#
baizhigangqw3 小时前
启发式算法WebApp实验室:从搜索策略到群体智能的能力进阶
算法·启发式算法·web app
C雨后彩虹3 小时前
最多等和不相交连续子序列
java·数据结构·算法·华为·面试
cpp_25014 小时前
P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法·题解·洛谷·noip·背包dp
Hugh-Yu-1301234 小时前
二元一次方程组求解器c++代码
开发语言·c++·算法
编程大师哥4 小时前
C++类和对象
开发语言·c++·算法
加农炮手Jinx5 小时前
LeetCode 146. LRU Cache 题解
算法·leetcode·力扣
Rabitebla5 小时前
C++ 和 C 语言实现 Stack 对比
c语言·数据结构·c++·算法·排序算法
加农炮手Jinx5 小时前
LeetCode 128. Longest Consecutive Sequence 题解
算法·leetcode·力扣