牛客網的題目描述如下:
輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。
public
class
solution
if(k <=0)
listnode fast = head;
listnode slow = head;
while
(k -
1>0)
else
}while
(fast.next != null)
return slow;
}}
力扣網的題目描述如下:
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。
class
solution
listnode prev = null;
listnode cur = head;
int offset = len - n;
for(
int i =
0;i < offset;i++)if
(n == len)
prev.next = cur.next;
return head;
}public
intsize
(listnode head)
return count;
}}
兩道題目歸根結底都是要找到倒數第k個節點。 鍊錶倒數第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個節點 即鍊錶從頭開始的第 n k 1 個節點 n為鍊錶節點總數。1 遍歷兩次鍊錶 第一次統計出鍊錶的節點數,第二次從頭節點開始往後走 n k 1 步即是倒數第k個節點 2 遍歷一次鍊錶 使用兩個指標p1和p2,開始均指向頭節點 第乙個指標p1從頭節點開始往後走 k 1 步,第二個指標...