鍊錶的倒數第k個節點

2021-08-21 09:45:14 字數 490 閱讀 3705

鍊錶的倒數第k個節點:即鍊錶從頭開始的第(n-k+1)個節點;n為鍊錶節點總數。

(1) 遍歷兩次鍊錶:第一次統計出鍊錶的節點數,第二次從頭節點開始往後走(n-k+1)步即是倒數第k個節點;

(2) 遍歷一次鍊錶:使用兩個指標p1和p2,開始均指向頭節點;第乙個指標p1從頭節點開始往後走(k-1)步,第二個指標p2保持不動;從第k步起,兩個指標p1和p2同時往後移動,由於兩個指標的距離一直保持在(k-1)步,所以當指標p1到達尾節點時,指標p2正好指向倒數第k個節點。

**如下:

listnode* findkthtotail(listnode* plisthead, unsigned int k) 

while(p1->next!=nullptr)

return p2;

}

鍊錶倒數第k個節點

兩個指標一前一後,相距k即可。include include using namespace std struct linknode typedef linknode linklist void insertlist linklist list int data else linknode rese...

鍊錶 倒數第k個節點

問題 刪除倒數第k個節點 鏈結 雙指標法,開始時p1,p2都指向頭節點,先讓p2走k步,然後p1和p2一起走,當p2指向null時,p1就指向倒數第k個節點了 definition for singly linked list.struct listnode class solution retur...

鍊錶的倒數第K個節點

題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個結點。package com.edu class linknode public class findkthtotail linknode head lst linknode kth ...