Remove Linked List Elements
Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
解题思路:如果链表节点的值与给定的值相等,则将下一个链表节点复制给当前节点;不相等,则将此链表节点赋给当前节点,并且当前节点下移一个位置。注意,预留头结点作为返回值。
JAVA答案: public class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode tempHead= new ListNode(0);
// tempHead.next=head;
ListNode temp=tempHead;//保存头指针
if(head==null)
{
return null;
}
while(head!=null)
{
if(head.val==val)//相等,则该删除节点
{
temp.next=head.next;
}
else{
temp.next=head; //不相等,复制节点且temp需移动一个位置
temp=temp.next;
}
head=head.next;
}
return tempHead.next;
}
}