62,628
社区成员
发帖
与我相关
我的任务
分享
public ListNode removeElements(ListNode head, int val) {
ListNode listnode = new ListNode(0);
listnode.next = head;
head = listnode; //这句话是什么意思?
while(head.next != null) {
if(head.next.val == val) {
head.next = head.next.next;
} else {
head = head.next;
}
}
return listnode.next;
}
public ListNode removeElements(ListNode head, int val) {
ListNode listnode = new ListNode(0);
listnode.next = head;
while(head != null) {
if(head.val == val) {
head = head.next;
} else {
head = head.next;
}
}
return listnode.next;
}listnode = head;
head = listnode;
这句是什么意思?[/quote]其实给链表增加了头结点,这就是所谓的带头节点的链表,所以这里给head=listnodepublic ListNode removeElements(ListNode head, int val) {
ListNode listnode = new ListNode(0);
listnode.next = head;
while(head != null) {
if(head.val == val) {
head = head.next; // 你的代码在这里有错误,应该head节点的父节点的next节点保存head的next节点,否则你这里没有删除head.val==val的节点
} else {
head = head.next;
}
}
return listnode.next;
}head = listnode;
这句是什么意思?ListNode listnode = new ListNode(0);
listnode.next = head; 这里等于创建一个头结点listnode,然后listnode->next=head赋值把传进来的链表链接到头结点listnode上