链表——删除链表倒数第n个节点

class Solution 
{
public:

	ListNode* deleteback(ListNode*head, int n) 
	{
		ListNode* dummyHead = new ListNode(0);
		dummyHead->next = head;
		ListNode* fast = dummyHead;
		ListNode* slow = dummyHead;
		n++;
		while (n-- && fast != NULL)		// 注意是fast != NULL 而不是fast->next != NULL
		{
			fast = fast->next;
		}

		while (fast != NULL)
		{
			fast = fast->next;
			slow = slow->next;
		}

		slow->next = slow->next->next;
		return dummyHead->next;
                // C++还涉及之前开辟内存需要释放的问题
	}
};
posted @   香花草的味道  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示