在鍊錶中查詢倒數第k個元素

2021-08-15 07:05:06 字數 922 閱讀 2050

第一種思路:

第二種思路:

注意:

//檔名: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步。可是輸入的是單向鍊錶,只有從前往後的指標而沒有從後往前的指標。因此我們需要開啟我們的思路...