代码随想录Day3|链表,203.移除链表元素 ,707.设计链表 , 206.反转链表

203

# Definition for singly-linked list.

# class ListNode(object):

#     def __init__(self, val=0, next=None):

#         self.val = val

#         self.next = next

class Solution(object):

    def removeElements(self, head, val):

        """

        :type head: ListNode

        :type val: int

        :rtype: ListNode

        """

        dummy_head = ListNode(next = head)

        cur = dummy_head

        while cur.next:

            if cur.next.val == val:

                cur.next = cur.next.next

            else:

                cur = cur.next

        return dummy_head.next

707.

class MyLinkedList(object):

    def __init__(self):

        self.dummy_head = ListNode()

        self.size = 0


 

    def get(self, index):

        """

        :type index: int

        :rtype: int

        """

        if index >= self.size or index < 0:

            return -1

        else:

            cur = self.dummy_head

            for i in range(index):

                cur = cur.next

            return cur.next.val



 

    def addAtHead(self, val):

        """

        :type val: int

        :rtype: None

        """

        t = self.dummy_head.next

        node = ListNode(val)

        self.dummy_head.next = node

        self.dummy_head.next.next = t

        self.size +=1

    def addAtTail(self, val):

        """

        :type val: int

        :rtype: None

        """

        cur = self.dummy_head

        while cur.next:

            cur = cur.next

        cur.next = ListNode(val)

        self.size +=1

       

    def addAtIndex(self, index, val):

        """

        :type index: int

        :type val: int

        :rtype: None

        """

        if index < 0 or index > self.size:

            return -1

        node = ListNode(val)

        cur = self.dummy_head

        for i in range(index):

            cur = cur.next

        node.next = cur.next

        cur.next = node

        self.size +=1

       

    def deleteAtIndex(self, index):

        """

        :type index: int

        :rtype: None

        """

        if index <0 or index >= self.size:

            return -1

        cur = self.dummy_head

        for i in range(index):

            cur = cur.next

        cur.next = cur.next.next

        self.size -=1


 

# Your MyLinkedList object will be instantiated and called as such:

# obj = MyLinkedList()

# param_1 = obj.get(index)

# obj.addAtHead(val)

# obj.addAtTail(val)

# obj.addAtIndex(index,val)

# obj.deleteAtIndex(index)

206

# Definition for singly-linked list. # class ListNode(object): # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution(object): def reverseList(self, head): """ :type head: ListNode :rtype: ListNode """ cur =head pre = None while (cur): tmp = cur.next cur.next = pre pre = cur cur = tmp return pre 先处理cur,再处理cur.next

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值