我是靠谱客的博主 务实鸭子,最近开发中收集的这篇文章主要介绍LeetCode-19 Remove Nth Node From End of List,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目链接

无头节点的单链表删除倒数为n的节点

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode *p = head, *q = head, *s;
        int flag = 0;
        for (int i = 0; !flag && i < n; i++)
        {
            if (p->next != NULL)
            {
                p = p->next;
            }
            else
            {
                flag = 1;
            }
            
        }
        
        if (flag)
        {
            q = head;
            head = q->next;
            free(q);
            return head;
        }
        
        while (p->next != NULL)
        {
            p = p->next;
            q = q->next;
        }
        
        s = q->next;
        q->next = s->next;
        free(s);
        return head;
    }
};


最后

以上就是务实鸭子为你收集整理的LeetCode-19 Remove Nth Node From End of List的全部内容,希望文章能够帮你解决LeetCode-19 Remove Nth Node From End of List所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部