輸出單向鍊錶中倒數第k個結點

2021-07-25 12:58:22 字數 1874 閱讀 7008

描述

輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點,鍊錶的倒數第0個結點為鍊錶的尾指標。

鍊錶結點定義如下:

struct listnode

;

詳細描述:

介面說明

原型:

listnode* findkthtotail(listnode* plisthead, unsignedint k);

輸入引數:

listnode* plisthead單向鍊錶

unsigned int k倒數第k個結點

輸出引數(指標指向的記憶體區域保證有效):

無 返回值:

正常返回倒數第k個結點指標,異常返回空指標

輸入
輸入說明

1 輸入鍊錶結點個數

2 輸入鍊錶的值

3 輸入k的值

輸出
輸出乙個整數

樣例輸入
8

1 2 3 4 5 6 7 8

4

樣例輸出
4

建立鍊錶

統計數量

查詢元素

也可以倒著插入,這樣正向查詢就好了!!!

記得釋放記憶體!!!

#include

#include

using

namespace

std;

struct listnode

;/*listnode* findkthtotail(listnode* plisthead, unsignedint k);

輸入引數:

listnode* plisthead 單向鍊錶

unsigned int k 倒數第k個結點

輸出引數(指標指向的記憶體區域保證有效):

無返回值:

正常返回倒數第k個結點指標,異常返回空指標*/

listnode* findkthtotail(listnode* plisthead, unsigned

int k)

counter=counter-1;

if(k<0||k>=counter)

tryreturn temp;

}catch(exception ex)

}void insertnode(listnode *plisthead,unsigned

int value)

(*temp).m_pnext=newnode;

temp=nullptr;

free(temp);

}void display(listnode *plisthead)

}int main()

//display(plisthead);//輸出生成的鍊錶

cin>>k;

listnode * result = findkthtotail(plisthead,k);

if(result!=nullptr)

}

沒事喝一杯咖啡吧~~~ 喝茶也行 ~~

適當的放鬆還是非常必要的~

51 輸出單向鍊錶中倒數第k個結點

題目描述 輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點,鍊錶的倒數第1個結點為鍊錶的尾指標。鍊錶結點定義如下 struct listnode int m nkey listnode m pnext 詳細描述 介面說明 原型 listnode findkthtotail listnode plisth...

輸出鍊錶中倒數第k個結點

題目 輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點。鍊錶的倒數第0個結點為鍊錶的尾指標。鍊錶結點定義如下 struct listnode coder lee 20120309 include include using namespace std struct listnode void creat...

輸出鍊錶中倒數第k個結點

鍊錶中倒數第k個結點 題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。思路 定義新結點從頭開始遍歷鍊錶,移動 k 次後停止,再定義新的結點指向煉表頭結點,兩個結點同時後移,直至前乙個為 null。注意 鍊錶可能一開始就是空的。如果 k 等於鍊錶長度,如1 2 3,k 3時應該返回原鍊錶1 2 3...