呆河马

谁甘人生黯淡无光,谁愿做叶不争艳芳

lintcode452. 删除链表中的元素

这题的坑点在于,链表中会有NULL,类似1->1>null

这个时候需要3个指针来分别指向

不同的节点

ListNode * removeElements(ListNode * head, int val)
	{
		if (head == NULL) {
			return head;
		}
		ListNode * newhead = new ListNode(0);
		newhead->next = head;
		ListNode * temp = head;
		ListNode *p = newhead;
		ListNode *q = temp->next;
		while (temp != NULL && temp->next != NULL) 
		{
			if (temp->val == val)
			{
				p->next = q;
				delete temp;
			}
			else 
			{
				p = p->next;
			}
			temp = temp->next;
			if (q->next != NULL) 
			{
				q = q->next;
			}
		}
		if (temp->next == NULL && temp->val == val) 
		{
			p->next = NULL;
		}
		return newhead->next;
	}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzngzaixiaomantou/article/details/79951225
个人分类: lintcode
上一篇lintcode 763Hex Conversion
下一篇lintcode366. 斐波纳契数列
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭