第一種思路:
第二種思路:
注意:
//檔名:listnode.h
#pragma once
#ifndef listnode_h
#define listnode_h
#include
using namespace std;
//定義鍊錶結構體
templatet>
struct listnode
listnode(t num):val(num),next(null){}
};// templatet>
// listnode* init(listnode* p)
// //構造鍊錶
templatet>
listnode* initlistnode(listnode* p,int n)
return head;
}//釋放鍊錶記憶體
templatet>
void deletenode(listnode* p)
//刪除頭結點
if (head)
}//查詢倒數第k個元素
templatet>
t findlastkelem(listnode* p,int k)
}while (pfront->next != null)
return pback->val;
}#endif
// linklist.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include "listnode.h"
#include
int _tmain(int argc, _tchar* argv)
return
0;}
鍊錶中倒數第k個元素
時間限制 1秒 空間限制 32768k 熱度指數 301751 本題知識點 鍊錶輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。class solution while phead next null return ptail 解題思路 傳統方法是從左到右遍歷一遍,得出鍊錶中的結點總數,然後計算倒數第k個...
找出鍊錶倒數第K個元素
思路 可設兩個頭指標p1和p2,當p2開始向前走,當走的步數為k時,p1開始走,此時當p2走到結尾時,p1所指的位置正好為倒數第k個元素的位置 class listnode override public string tostring return sb.tostring public stati...
查詢鍊錶中倒數第k個結點
輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點。鍊錶的倒數第0個結點為鍊錶的尾指標。鍊錶結點定義如下 struct listnode 分析 為了得到倒數第k個結點,很自然的想法是先走到鍊錶的尾端,再從尾端回溯k步。可是輸入的是單向鍊錶,只有從前往後的指標而沒有從後往前的指標。因此我們需要開啟我們的思路...