Leecode刷题心得

T19  7月2日 删除链表的倒数第N个节点

这里主要是看的代码随想录的方法,还没有自己的思路

要删除第N个节点,也就是要让操作指针指向第N-1个节点

首先可以创建虚拟节点,方便我们不需要对操作的节点是不是头节点进行特殊判断

创建两个指针,一个快指针,一个慢指针。快指针先移动N个,然后在快慢指针一起移动。

* Definition for singly-linked list.
       struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {
    struct ListNode* dummy = malloc(sizeof(struct ListNode));  #创建虚拟头节点
    dummy->next=head; #虚拟头节点连接头节点
    struct ListNode* fast =dummy;
    struct ListNode* slow = du mmy; #创建两个指针,指向虚拟头节点
   int count=0;
    while(fast->next!=NULL)
        {
            if(count<n) 
                count++;
                   
        
            else slow=slow->next;
            fast=fast->next;
        }
     slow->next=slow->next->next; #删除节点
    return dummy->next;       

}

最后感想:不是自己想出来的,看的别人的题解。这是第一篇解题博客,希望能一直坚持到大学毕业

问题:这段代码的if循环是什么意思啊?有哪位大神可以为我解答一下吗?谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值