題目描述
輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點,鍊錶的倒數第1個結點為鍊錶的尾指標。
鍊錶結點定義如下:
struct listnode
int m_nkey;
listnode* m_pnext;
};詳細描述:
介面說明
原型:listnode* findkthtotail(listnode* plisthead, unsignedint k);
輸入引數:
listnode* plisthead 單向鍊錶
unsigned int k 倒數第k個結點
輸出引數(指標指向的記憶體區域保證有效):
無返回值:
正常返回倒數第k個結點指標,異常返回空指標
輸入描述:
輸入說明
1 輸入鍊錶結點個數
2 輸入鍊錶的值
3 輸入k的值
輸出描述:
輸出乙個整數
示例1輸入
81 2 3 4 5 6 7 84輸出
5
#直接列表實現
while true:
try:
n=int(input())
stringlist=[int(i) for i in input().split()]
index=int(input())
if index==0:
print(0)
else:
print(stringlist[-index])
except:
break
#鍊錶形式
class node():
def __init__(self,item):#節點初始條件有值
self.item=item
self.next=none
#建立鍊錶的類
class singlelink():
#初始化,給定鍊錶的頭部屬性
def __init__(self,node=none):
self.__head=node
def is_empty(self):
return self.__head==none #為none返回true,不為none,false
newnode=node(newitem)
if self.is_empty():#類之間的函式呼叫用self.func
self.__head = newnode
else:
currentnode=self.__head
while currentnode.next!=none:
currentnode=currentnode.next
currentnode.next = newnode
# #判斷鍊錶的長度
def length(self):
if self.is_empty():
return 0
else:
currentnode=self.__head #代表currentnode指向當前節點的游標與head指標指向同乙個節點
lengthcount=1#對比注釋部分另乙個方法,lengthcount=0
while currentnode.next!=none:
lengthcount+=1
currentnode=currentnode.next
return lengthcount
def show(self, position):
if (position < 0) or (position > self.length()):
return false
else:
currentnode = self.__head
positioncount = 0
while positioncount < position:
currentnode = currentnode.next
positioncount += 1
print(currentnode.item)
while true:
try:
if __name__ == "__main__":
link = singlelink()
n=int(input())
stringlist=[int(i) for i in input().split()]
for i in stringlist:
index=int(input())
if index==0:
print(0)
else:
link.show(n-index)
except:
break
輸出單向鍊錶中倒數第k個結點
描述 輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點,鍊錶的倒數第0個結點為鍊錶的尾指標。鍊錶結點定義如下 struct listnode 詳細描述 介面說明 原型 listnode findkthtotail listnode plisthead,unsignedint k 輸入引數 listnod...
python實現獲取單向鍊錶倒數第k個結點的值示例
初始化鍊錶的結點 class node def init self,itedqhejm self.item item self.next none 傳入頭結點,獲取整個鍊錶的長度 def length headnode if headnode none return none count 0 cur...
單向鍊錶中倒數第k個值
本文參考書籍 劍指offer 作者何海濤 01 題目輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點。如乙個鍊錶中有6個結點,1,2,3,4,5,6 這個鍊錶的倒數第三個節點是值為4的結點。鍊錶結構如下 02 解題 解法1 獲取鍊錶的第k個值,如果可以知道鍊錶長度n,那麼可以知道從0開始第n k的值是要...