求鏈式線性表的倒數第k項
1.建立雙向鍊錶
注意查詢錯誤位置輸出
2.考研題思路
定義兩個指標a,b,都指向煉表頭節點,然後將b向後移k次,再將a,b同時向後移,當b到達鍊錶末尾時a指向的那個節點值即是倒數第k項。注意特殊情況的考慮,比如鍊錶總長度剛好等於k或者小於k等。
#include#includetypedef struct node *ptrnode;
typedef ptrnode linklist; //頭結點
typedef ptrnode position;//中間節點
typedef int elementtype;
struct node;
linklist creatlist(void)
r->next = null;
return head;
}
void printlastkth(linklist l, int k)
if(hb == null)
printf("null");
else
printf("%d",ha->element);
} }
void destroylinklist(linklist l)
l = null;
}
int main(void)
鍊錶倒數第n個數
問題描述 找到鍊錶中的倒數第n個結點,返回它的值 如給定3 2 1 5 null和2,返回1。解題思路 設定兩個指標,先讓第乙個指標跑到指定的位置,此時第二個指標和第乙個指標一起跑,跑的快的指標到達null時,另乙個指標就指向要找的結點了。實現 class solution if head next...
鍊錶倒數第n個節點
題目 鍊錶倒數第n個節點 問題描述 找到單鏈表倒數第n個節點,保證鍊錶中節點的最少數量為n。如 給出鍊錶 3 2 1 5 null 和n 2,返回倒數第二個節點的值1.思路 遍歷整個鍊錶,計數鍊錶元素的個數。第二遍遍歷鍊錶,到倒數第n個節點處停止,輸出第n個節點。class solution int...
鍊錶倒數第n個節點
問題描述 找到單鏈表倒數第n個節點,保證鍊錶中節點的最少數量為n。樣例 給出鍊錶 3 2 1 5 null和n 2,返回倒數第二個節點的值1.解題思路 建立新煉表來建立兩個指標dummy和head,用head遍歷鍊錶得出鍊錶的長度。用dummy進行for迴圈,遍歷到第sum 1個節點,就得到倒數第n...