203移除链表元素
思路:建立一个虚拟虚拟节点来对任一节点进行统一操作
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
ListNode* dummyhead = new ListNode(0);//建立虚拟节点dummyhead
dummyhead->next=head;//使节点与源头节点相连
ListNode* p= dummyhead;//定义一个指针用于遍历
while(p->next!=NULL)
{
if (p->next->val==val)
{
p->next=p->next->next;//使用dummyhead直接与head的下一个节点相连,从而使目标节点断开
}
else
{
p=p->next;//若未找到目标节点,则向后移动
}
}
head=dummyhead->next;
delete dummyhead;//删除虚拟节点
return head;
}
};
707设计链表
思路: