python LeetCode 奇偶鍊錶

2021-08-30 08:59:13 字數 1400 閱讀 3398

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。

請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o(1),時間複雜度應為 o(nodes),nodes 為節點總數。

示例 1:

輸入: 1->2->3->4->5->null

輸出: 1->3->5->2->4->null

示例 2:

輸入: 2->1->3->5->6->4->7->null 

輸出: 2->3->6->7->1->5->4->null

說明:思路圖例

python實現

#definition for singly-linked list.

class listnode(object):

def __init__(self, x):

self.val = x

self.next = none

class solution(object):

def oddevenlist(self, head):

""":type head: listnode

:rtype: listnode

"""if not head or not head.next:

return head

odd = head # 奇數字

even = head.next # 偶數字

even_head = even # 記錄第乙個偶數字

while even and even.next:

odd.next = odd.next.next

if odd.next: # 下乙個奇數為非空進行賦值操作

odd = odd.next

even.next = even.next.next

even = even.next

odd.next = even_head #連上第乙個偶數字

return head

python leetcode 最大回文數

直接暴力求解時間超出,選取manacher演算法 class solution def longestpalindrome self,s t join s 前後插入 是為了防止越界,不需要進行邊界判斷 n len t p 0 n 每一處的回文半徑 c r 0 r為當前訪問到的最右邊的值,c為此時對稱...

python LeetCode 兩數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...

1 兩數之和 Python LeetCode

剛開始接觸演算法方面,好多都不懂,打算每刷一題就整理一下 給定乙個整數數列,找出其中和為特定值的那兩個數。你可以假設每個輸入都只會有一種答案,同樣的元素不能被重用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 解法一 剛開...