刷题笔记——链表

leetcode876
方法1:构建fast和slow两个链表指针,slow一次走一步,fast一次走两步,代码:

def middleNode(self, head):
        slow = fast = head
        while fast and fast.next:
            slow = slow.next
            fast = fast.next.next
        return slow

方法2:找到中间位置索引,然后输出后半部分的链表,代码:

class Solution:
    def middleNode(self, head):
        p = head
        len=0
        while p:
            len+=1
            p=p.next
        mid = int(len/2)
        p = head
        i=0
        while(i<mid):
            p=p.next
            i+=1
        return p

猜你喜欢

转载自blog.csdn.net/aaon22357/article/details/83869553