問題描述:找到單鏈表倒數第n個節點,保證鍊錶中節點的最少數量為n。
樣例:給出鍊錶 3->2->1->5->null和n = 2,返回倒數第二個節點的值1.
解題思路:建立新煉表來建立兩個指標dummy和head,用head遍歷鍊錶得出鍊錶的長度。
用dummy進行for迴圈,遍歷到第sum-1個節點,就得到倒數第n個節點最後返回dummy。
**:/**
* definition of listnode
* class listnode
* }*/
class solution
for(i=0;inext;
}return dummy;}};
感想:解題可以有多種方法,看了其同學的**感覺這個思路很奇妙,想法獨闢蹊徑。
倒數第n個節點和最後乙個節點間相隔n-1個節點,如果建立兩個指向節點指標想辦法讓這兩個指標之間相差n-1個節點的,兩個指標同時移動,乙個指標到達最後乙個節點則另乙個也就到達了倒數第n個節點,如此便找到了倒數第n個節點。
**:if(head==null||n<1)
return null;
listnode *dummy=head;
listnode *m=head;
for(int i=1;inext;
}while(head->next!=null)
return m;
鍊錶倒數第n個節點
題目 鍊錶倒數第n個節點 問題描述 找到單鏈表倒數第n個節點,保證鍊錶中節點的最少數量為n。如 給出鍊錶 3 2 1 5 null 和n 2,返回倒數第二個節點的值1.思路 遍歷整個鍊錶,計數鍊錶元素的個數。第二遍遍歷鍊錶,到倒數第n個節點處停止,輸出第n個節點。class solution int...
鍊錶倒數第n個節點
1.問題描述 找到單鏈表倒數第n個節點,保證鍊錶中節點的最少數量為n。樣例給出鍊錶3 2 1 5 null 和n 2,返回倒數第二個節點的值1.2.解題思路 建立兩個指標,先讓第乙個指標移動n個節點,然後兩個指標一起移動,當第乙個節點移動到最後乙個節點時,第二個指著指的就是倒數第n個節點,然後返回這...
鍊錶倒數第n個節點
題目描述 找到單鏈表倒數第n個節點,保證鍊錶中節點的最少數量為n。樣例 給出鍊錶 3 2 1 5 null和n 2,返回倒數第二個節點的值1.因為鍊錶是不能回溯的,同時也不像陣列那樣,每個元素都存有乙個自然的索引,可以實現快速查詢,所以,我們在這裡,通過兩個指標來解決這個問題。想一想之前在 排序鍊錶...