标签:指针 turn col ddl 就是 hat HERE def and
Given a non-empty, singly linked list with head node head
, return a middle node of linked list.
If there are two middle nodes, return the second middle node.
Example 1:
Input: [1,2,3,4,5]
Output: Node 3 from this list (Serialization: [3,4,5])
The returned node has value 3. (The judge‘s serialization of this node is [3,4,5]).
Note that we returned a ListNode object ans, such that:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.
Example 2:
Input: [1,2,3,4,5,6] Output: Node 4 from this list (Serialization: [4,5,6]) Since the list has two middle nodes with values 3 and 4, we return the second one.
就是找到中间结点,然后依次打印链表结点。方法就是利用两个快慢指针。从头开始,如果快指针每次走两步,慢指针每次走一步,那么当快指针走到末尾时,慢指针正好在中间位置。
1 class Solution: 2 def middleNode(self, head: ListNode) -> ListNode: 3 pre = head # 快指针 4 cur = head # 慢指针 5 while(pre and pre.next): 6 cur = cur.next 7 pre = pre.next.next 8 9 return cur
检验:
1 # 新建链表1 2 listnode1 = ListNode_handle(None) 3 #s1 = [1,2,3,666,8,3,2,9,4,5,6,8,999,666] 4 s1 = [1,3,5,666,4,5] 5 for i in s1: 6 listnode1.add(i) 7 listnode1.print_node(listnode1.head) 8 9 10 s = Solution() 11 head = s.middleNode(listnode1.head) 12 listnode1.print_node(head)
1 3 5 666 4 5
666 4 5
876. Middle of the Linked List
标签:指针 turn col ddl 就是 hat HERE def and
原文地址:https://www.cnblogs.com/king-lps/p/10659064.html