移除链表元素

Bernie


Bernie
203. 移除链表元素
思路:
1.使用 dummy 节点存储头节点,然后遍历链表.
2.如果再遍历判断当前节点的值等于 val,如相等则将当前节点的 next 指向下一个节点的 next.
3.然后将当前节点指向下一个节点,最后返回 dummy.next 即可。
typescript 解法
/**
* Definition for singly-linked list.
* class ListNode {
* val: number
* next: ListNode | null
* constructor(val?: number, next?: ListNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
* }
*/
function removeElements(head: ListNode | null, val: number): ListNode | null {
const dummy = new ListNode(-1, head);
let current = dummy;
while (current) {
while (current.next && current.next.val === val) {
current.next = current.next.next;
}
current = current.next;
}
return dummy.next;
}
go 解法
func removeElements(head *ListNode, val int) *ListNode {
dummy := &ListNode{
Val: -1,
Next: head,
}
current := dummy
for current != nil {
for current.Next != nil && current.Next.Val == val {
current.Next = current.Next.Next
}
current = current.Next
}
return dummy.Next
}