203. 移除链表元素
Posted lgz0921
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了203. 移除链表元素相关的知识,希望对你有一定的参考价值。
题目链接:https://leetcode-cn.com/problems/remove-linked-list-elements/
思路:建立一个新的头节点指向head,这样的原因是好判断删除。然后用一个临时指针来进行操作(临时指针等于新的头节点,原因是好用next的那个节点判断),当碰到相等的节点值,就把next指向next的next即可,如果不相等就移动到next节点即可。
上代码:
/**
* Example:
* var li = ListNode(5)
* var v = li.`val`
* Definition for singly-linked list.
* class ListNode(var `val`: Int) {
* var next: ListNode? = null
* }
*/
class Solution {
fun removeElements(head: ListNode?, `val`: Int): ListNode? {
val newHead = ListNode(0)
newHead.next = head
var tmp = newHead
while (tmp.next != null) {
when (tmp.next!!.`val`) {
`val` -> tmp.next = tmp.next!!.next
else -> tmp = tmp.next!!
}
}
return newHead.next
}
}
以上是关于203. 移除链表元素的主要内容,如果未能解决你的问题,请参考以下文章
代码随想录算法训练营第三天 | 203.移除链表元素707.设计链表 206.反转链表