LeetCode 题目-203.移除链表元素/206.反转链表(python实现)

作为要准备踏入码农行业的人来说,要准备校招,怎么能不去刷刷LeetCode呢?

203.移除链表元素

  • 题目要求:
    删除链表中等于给定值 val 的所有节点。

  • 示例:

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
  • 分析:
    方法:对给定链表加一个头结点方便后续操作
class Solution(object):
    def removeElements(self, head, val):
		node=ListNode(None)
        node.next=head
        q=node
        while q.next is not None:
            if q.next.val==val:
                q.next=q.next.next
            else:
                q=q.next
        return node.next#忽略定义的头结点

206.反转链表

  • 题目要求:
    反转一个单链表

  • 示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
  • 方法:使用一个新链表逐个反转存储
class Solution(object):
    def reverseList(self, head):
        temp =None
        cur =head
        newhead=None
        while cur is not  None:
            #先存取下一个要逆转的指针域
            temp=cur.next
            #将该数据的指针域链接到逆转的链表
            cur.next=newhead
            #不断更新这个逆转的链表,使其成为第一个数
            newhead=cur
            #获取下一个待逆转的表
            cur=temp
        return newhead

你可能感兴趣的:(Leetcode刷题笔记)