LintCode Python 简单级题目 452.删除链表中的元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode Python 简单级题目 452.删除链表中的元素相关的知识,希望对你有一定的参考价值。
原题描述:
删除链表中等于给定值val
的所有节点。
样例
给出链表 1->2->3->3->4->5->3
, 和 val = 3
, 你需要返回删除3之后的链表:1->2->4->5
。
题目分析:
删除链表中等于给定值val
的所有节点。
遍历链表,找到其中next.val等于val的节点,删除。
注意的地方就是可能链表中的所有元素val都等于val,循环的开始需要从表头开始删除,需要新增一个头节点。
源码:
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # @param head, a ListNode # @param val, an integer # @return a ListNode def removeElements(self, head, val): # Write your code here if head is None: return None # 可能链表中的所有元素val都等于val,所以需要新增一个头节点 new = ListNode(0) new.next = head head = new pre = head # 遍历链表,删除等于val的所有节点 while pre.next is not None: if pre.next.val == val: pre.next = pre.next.next else: pre = pre.next return new.next
以上是关于LintCode Python 简单级题目 452.删除链表中的元素的主要内容,如果未能解决你的问题,请参考以下文章
LintCode Python 简单级题目 373.奇偶分割数组