leetcode 328.
1052 ワード
質問:
単一の接続リストのヘッダが指定されている場合、奇数のインデックスを持つすべてのノードがグループ化され、偶数のインデックスを持つノードがグループ化され、再ソートされたリストが返されます.
1番目のノードは奇数とみなされ、2番目のノードは偶数とみなされる.
偶数配列と奇数群の内部の相対順序は、入力の順序と同じである必要があります.
O(1)の余分な空間的複雑さとO(n)時間的複雑さで問題を解決しなければならない.
プールポリシー:
奇数ノードと偶数ノードを別々に接続し、奇数ノードの末尾と偶数ノードの先頭を接続します.
while文の条件は、奇数が次の接続するノードの偶数と等しくなければならないことです.
単一の接続リストのヘッダが指定されている場合、奇数のインデックスを持つすべてのノードがグループ化され、偶数のインデックスを持つノードがグループ化され、再ソートされたリストが返されます.
1番目のノードは奇数とみなされ、2番目のノードは偶数とみなされる.
偶数配列と奇数群の内部の相対順序は、入力の順序と同じである必要があります.
O(1)の余分な空間的複雑さとO(n)時間的複雑さで問題を解決しなければならない.
プールポリシー:
奇数ノードと偶数ノードを別々に接続し、奇数ノードの末尾と偶数ノードの先頭を接続します.
while文の条件は、奇数が次の接続するノードの偶数と等しくなければならないことです.
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def oddEvenList(self, head: Optional[ListNode]) -> Optional[ListNode]:
if head is None :
return None
odd = head
even = head.next
even_head = head.next # odd 연결 다하고 even을 연결해주기 위해
while even and odd.next.next: # 여기서 even.next 는 odd 다음 연결 노드이다.
odd.next = odd.next.next
odd = odd.next
even.next = even.next.next
even = even.next
odd.next = even_head # odd 와 even 연결
return head
Reference
この問題について(leetcode 328.), 我々は、より多くの情報をここで見つけました https://velog.io/@tmdgus3901/leetcode-328テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol