逆置單鏈表以及求鍊錶倒數第k個結點 題集(二)

2021-09-30 13:45:59 字數 1151 閱讀 6092

逆置單鏈表及求鍊錶倒數第k個結點——題集(二)

今天分享一下兩道練習題,即逆置單鏈表以及求鍊錶倒數第

k個結點,要求時間複雜度為o(1)。

首先分享一下逆置單鏈表的**和執行介面。單鏈表分為帶頭結點的單鏈表和不帶頭結點的單鏈表。

源**如下:

#includeusing namespace std;

//逆置/反轉單鏈表,要求只能遍歷一次鍊錶

struct listnode};

listnode* reverse(listnode* l1)

l1->next=tail;//最後乙個結點與倒數第二個結點鏈結

head->next = l1;//把最後乙個結點給頭結點

return head; }

listnode* reverse1(listnode* l1)

l1->next=tail;//最後乙個結點與倒數第二個結點鏈結

head = l1;//讓原鍊錶的最後乙個結點變成頭結點

return head; }

void printf(listnode* l1)

printf("\n");}

void listtest()

void listtest1()};

listnode* findk(listnode* l1,int k)

break;

}if(num < k)return null;//鍊錶長度小於k

while(l1->next != null)

return point;}

void listtest(){

listnode l1(1);

listnode l2(2);

listnode l3(3);

listnode l4(4);

listnode l5(11);

l1.next = &l2;

l2.next = &l3;

l3.next = &l4;

l4.next = &l5;

cout<

執行介面

分享如上!望各位學的開心!

逆置單鏈表 求倒數第k個結點

定義並建立鍊錶 include using namespace std include typedef struct listnode listnode void push listnode list,int x else cur next tmp 逆置單鏈表 listnode listrevers...

求鍊錶倒數第k個節點

1.初解 public static node findkthtotail node head,uint k behind head while ahead.next null return behind 上面的 存在3處魯棒性問題 1 輸入的head為空指標。由於 會試圖訪問空指標指向的記憶體,程...

單鏈表的增刪查 逆置 倒數第k個節點等問題

對於單鏈表而言,它沒有雙鏈表那麼複雜,它只有頭節點,尾節點,節點資料,後繼指標。在下面本人實現了 單鏈表的 增 刪 插 查 改。include include include includetypedef int datatype typedef struct slistnode slistnode...