LeetCode203-移除链表元素

删除链表中等于给定值 val 的所有节点。

示例:

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

一、思路

每次查看下一个元素是否为val,是的话直接删除就好

注:当val出现在第一个node时,需要额外处理

C++代码:

class Solution {
public:
	ListNode* removeElements(ListNode* head, int val) {
		if (head == NULL)
			return head;
		while (head != NULL && head->val == val)
			head = head->next;
		ListNode *p = head;
		while (p != NULL && p->next != NULL) {
			if (p->next->val == val) 
				p->next = p->next->next;
			else
				p = p->next;
		}
		return head;
	}
};

执行效率:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lyd1995/article/details/89197537