leetCode 鍊錶專題

2021-08-18 21:43:34 字數 1108 閱讀 8032

sort a linked list in o(n log n) time using constant space complexity.

用歸併排序:  其中只是建立了乙個prehead節點 占用空間o(1)    時間o(nlogn)

public class solution   //常規合併排序思路

listnode mid = getmid(head);

listnode midnext = mid.next;

mid.next = null;                     //一定記得斷開head 左半部分的鍊錶尾部

return mergesort(sortlist(head), sortlist(midnext));

}private listnode getmid(listnode head)

listnode slow = head, quick = head;

while(quick.next != null && quick.next.next != null)

return slow;

}private listnode mergesort(listnode n1, listnode n2) else

cur = cur.next;

}cur.next = cur1 == null ? cur2 : cur1; //看哪個鍊錶不為空 繼續接上

return prehead.next;

}}

用快速排序:

public class solution 

public static void quicksort(listnode head, listnode end)

}public static listnode partion(listnode head, listnode end)

fast = fast.next;

}int temp=head.val; //交換slow和最初基準值

head.val=slow.val;

slow.val=temp;

return slow;

}}

LeetCode 鍊錶專題

返回兩個鍊錶相交的節點 class solution object def getintersectionnode self,heada,headb type head1,head1 listnode rtype listnode if not heada and not headb return ...

Leetcode鍊錶專題

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...

鍊錶專題 4 鍊錶

鍊錶是一大堆節點合起來連起來組成的表的總稱。其中每個節點中都有指標變數指向列表中的下乙個節點。鍊錶中第乙個節點被稱之為表頭 head 所以將第乙個節點的指標變數命名為head。最後乙個節點並沒有神馬特殊的名字,但是它 最後乙個節點 有一項特殊的屬性 最後乙個節點將null作為最後乙個變數的值 所以檢...