题目描述:
Remove all elements from a linked list of integers that have value val.
Example:
Input: 1->2->6->3->4->5->6, val = 6 Output: 1->2->3->4->5
中文理解:给定一个链表,给定一个值,若链表某个节点的值等于给定值,则抛弃这个节点,求出最终的链表序列。
解题思路:可以采用尾插法重建链表。
代码(java):
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode p=head;
ListNode res=new ListNode(0);
ListNode cur=res;
while(p!=null){
if(p.val!=val){
ListNode tmp=new ListNode(p.val);
cur.next=tmp;
cur=cur.next;
}
p=p.next;
}
cur.next=null;
return res.next;
}
}