Find the common nodes in two singly linked list
hint
當有1個以上的head
節點時,可以先建立一個結構給head
節點的。然後利用兩個指標變數來儲存各個鏈結串列的head
節點,並且利用兩個迴圈來一個一個比較鏈結串列裡的資料是否相同。當資料相同時把第二個指標變數改成NULLAdd two numbers represented by linked list
hint
宣告兩個指標變數,接著把值相加後儲存進新的鏈結串列。但是最一開始時,要先把兩個鏈結串列反轉,才能從個位數開始相加Segregate even and odd nodes in a Linked List
hint
先用一個指標變數指向head節點,然後再用一個指標變數儲存data,來判斷目前的節點是否為偶數,如果是的話就讓他指向head節點,如果不是的話就指向odd指標。最後分配完之後,如果有偶數節點時,就先到最後一個節點之後,改指向odd指標Find fractional node in linked list
hint
如果count變數%可以為0那就讓result
指標變數往前,否則就讓temp
指標變數往前Find modular node in a linked list
hint
如果count變數%可以為0那就讓result
指標變數等於temp否則就讓temp
指標變數往前Clone a linked list with next and random pointer
hint
首先先將複製的節點放在原始節點的後面,再來複製原始節點的random
欄位給複製的節點,最後將原始節點和複製的節點分開,讓front
指標變數指向複製的節點的第一個節點Reverse a Linked List in groups of given size
hint
利用counter
變數來判斷這一組反轉前的最後一個節點是什麼,並且定義一個指標變數指向反轉前的第一個節點,也定義一個節點用於反轉節點,最後判斷頭節點是否為NULL
Pairwise swap elements of a given linked list
hint
首先讓頭節點指向第二個節點好方便反轉,也用prev
和current
節點來交換節點Print reverse of a linked list without actually reversing
Find intersection point of two linked list
hint
先取得兩個鏈結串列的長度,並且判斷哪一個鏈結串列的長度比較長,如果L2 > L1
的話,就要相反的傳入,因為intersectionNode
函數都是固定讓l1
變數進行迴圈,這樣之後兩個鏈結串列在比較時才會是相同的長度Find length of loop in linked list
hint
先確定鏈結串列是不是含有loop,如果有的話再去計算loop的長度Detect loop in a linked list
hint
利用兩個指標來檢查是否有loop,當他們相等時代表鏈結串列有loop