链表——删除链表倒数第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 @ 2022-10-27 09:47  香花草的味道  阅读(21)  评论(0)    收藏  举报