
牛客
文章平均质量分 57
随心uj
。
展开
-
[牛客] - OR36 链表的回文结构
题目链接 题目: 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 过程: 由于是单链表,我们无法从尾向后去遍历,因此我们可以 先得到链表的中间结点 mid。 将 mid 所指的链表后面的结点逆置(逆置在我之前的博客写了 反转链表) 这样就可以得到类似 1 -> 2 -> 3 <-2 <- 1 的链表 令cur 指向链表头结点,原创 2021-11-13 16:02:00 · 415 阅读 · 0 评论 -
[牛客] -程序员面试宝典-CM11 链表分割
题目链接 题目: 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 解读: 如果链表的内容为1 3 4 5 8 2 7,给的x的数值为6,则改变后的链表为 1 3 4 5 2 8 7 过程: 由于在原先的链表改变结点的顺序较为麻烦,因此使用两个链表分别存储比x小的结点和比x大的结点。 分别malloc两个结点:lessHead,greaterHead,再使用尾指针指向它,把小于x的结原创 2021-11-13 13:37:58 · 164 阅读 · 0 评论