1, 题目

删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

2, 算法

  1. object Solution {
  2. def removeElements(head: ListNode, `val`: Int): ListNode = {
  3. val x = `val`
  4. val result = new ListNode()
  5. result.next = head
  6. var current = result
  7. while (current.next != null) {
  8. if (current.next.x == x) {
  9. val tmp = current.next
  10. current.next = current.next.next
  11. tmp.next = null
  12. } else {
  13. current = current.next
  14. }
  15. }
  16. val l = result.next
  17. result.next = null
  18. l
  19. }
  20. }
  1. class Solution:
  2. def removeElements(self, head: ListNode, val: int) -> ListNode:
  3. result = ListNode()
  4. result.next = head
  5. current = result
  6. while current.next:
  7. if current.next.val == val:
  8. tmp = current.next
  9. current.next = current.next.next
  10. tmp.next = None
  11. else:
  12. current = current.next
  13. head = result.next
  14. result.next = None
  15. return head