【力扣习题】C语言

目录

【876.链表的中间点】

思路:

【83删除排序链表中的重复元素】

思想:

代码:


【876.链表的中间点】
思路:

1、计算链表的长度

2、遍历到链表中间长度并输出值

复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* middleNode(struct ListNode* head) {
    int n = 1;
    struct ListNode* p = malloc(sizeof(struct ListNode));
    p->next = NULL;
    p->val = head->val;
    p = head;
    while(p->next != NULL)
    {
        p = p->next;
        n++;    
    }
    
    if(n==1)
    {
        return head;
    }
    
    int k = n/2;
    struct ListNode *q = head;
    while(k--)
    {
        q = q->next;
        
    }
    printf("%d\n",q->val);
    head = q;
   
 
    return head;
}
【83删除排序链表中的重复元素】
思想:

1、如果链表为空,返回NULL

2、遍历判断是否相等,相等跳过

代码:
复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* deleteDuplicates(struct ListNode* head) {
    if(head==NULL)
    {
        return NULL;
    }
    struct ListNode* p = malloc(sizeof(struct ListNode));
    p->next = NULL;
    p->val = head->val;
    p = head;    
    
    while(p->next)
    {
        if(p->val == p->next->val)
        {
            p->next = p->next->next;
        }
        else
        {
            p= p->next;
        }                     
    }
    return head;
}
相关推荐
木井巳1 小时前
【动态规划: 线性dp】解码方法
java·算法·leetcode·动态规划·推荐算法
春弦_9 小时前
自用算法整理二
数据结构·算法·图论
hetao173383710 小时前
2026-10-22~23 hetao1733837 的刷题记录
c++·算法
java_nnnn10 小时前
LeetCode刷题滑动窗口(串联所有单词的子串+最小覆盖的子串)Java
算法·leetcode·职场和发展
Navigator_Z11 小时前
LeetCode //C - 1301. Number of Paths with Max Score
c语言·算法·leetcode
卡卡~~11 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法
学逆向的12 小时前
C 多文件开发
c语言·开发语言·网络安全
企业数字化笔记12 小时前
AI视频增强后画质怎么验收?插值基线、伪细节与帧间闪烁的检查方法
人工智能·算法·音视频
学逆向的12 小时前
C 内存属性
c语言·开发语言·算法·网络安全