【力扣习题】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;
}
相关推荐
Angle.寻梦24 分钟前
数据结构--堆
数据结构
ysa0510301 小时前
【板子】二分答案(最大最小?)
c++·笔记·算法·板子
科技之门1 小时前
百公里管网漏损分级定位实战方案2026
前端·人工智能·算法
木木子221 小时前
# 猜数字游戏 — HarmonyOS交互逻辑与随机算法实现
算法·游戏·华为·交互·harmonyos
玖玥拾1 小时前
Unity 3D 笔记(十四)Unity/C# Socket 网络笔记3
服务器·网络·unity·c#
stolentime2 小时前
SP8549 MAIN75 - BST again题解
c++·算法·二叉树·深度优先·图论·记忆化搜索·组合数学
ziguo11222 小时前
C/C++ 错误处理全解:从 errno 到 C++ 异常
linux·c语言·c++·windows·visual studio
stolentime2 小时前
AT_pakencamp_2020_day1_k Gcd of Sum题解
c++·算法
2601_956121972 小时前
map_计蒜客T1271 完美K倍子数组
c++·算法
编程圈子3 小时前
电机驱动开发学习19. 霍尔 BLDC 三段式 FOC 启动算法
驱动开发·学习·算法