定義並建立鍊錶:
#include using namespace std;
#include typedef struct listnode
}listnode;
void push(listnode** list,int x)
else
cur->_next = tmp;
}}
逆置單鏈表:
listnode* listreverse(listnode* list)
listnode* cur = list;
listnode* prev = null;
listnode* tmp = null;
while (cur)
return prev;
}
求倒數第k個結點:
listnode* findknode(listnode* list,int k)
listnode* fast = list;
listnode* slow = list;
for (int i=0; i_next != null)
else //給的數值超過範圍
}while (fast)
return slow;
}
實現乙個add函式,讓兩個數相加,但是不能使用+、-、*、/等四則運算符。ps:也不能用++、--等等:
int add(int a,int b)
while (b);
return a;
}
逆置單鏈表以及求鍊錶倒數第k個結點 題集(二)
逆置單鏈表及求鍊錶倒數第k個結點 題集 二 今天分享一下兩道練習題,即逆置單鏈表以及求鍊錶倒數第 k個結點,要求時間複雜度為o 1 首先分享一下逆置單鏈表的 和執行介面。單鏈表分為帶頭結點的單鏈表和不帶頭結點的單鏈表。源 如下 includeusing namespace std 逆置 反轉單鏈表,...
習題 求單鏈表的倒數第k個結點
1 思路 1 定義兩個指標指向頭結點 2 讓其中乙個指標向後移動k 1個結點 為了讓兩個指標之間的距離和倒數第k個節點到尾結點的距離保持一致 3 兩個指標同時向後移動,直到乙個指標指向尾結點,此時另乙個指向的就是k結點。2 實現 1 seqlist.h pragma once typedef int...
刪除單鏈表倒數第k個結點
在資料結構這一方面,鍊錶這塊容易搞混的是它的指標。下面的演算法為刪除單鏈表倒數第k個結點,所有的步驟解析都在 裡說明了。刪除單鏈表的倒數第 k個結點.結點定義 classnode public classremotelastedkthnode node node head 遍歷一遍鍊錶,得到 k 最...