鍊錶摺疊 面試題

2021-09-25 17:34:26 字數 1128 閱讀 9593

我也不知道該叫什麼.就叫 鍊錶摺疊 吧

題目:

給乙個單鏈表,形如

1 2 3 4 5

變成1 5 2 4 3

演算法複雜度要求為o(n)

思路:

先把後半部分反轉過來,

然後把後半部分 和 前半部分 合併.

用到的知識點:

構建單鏈表

鍊錶反轉

鍊錶合併(這個其實相當於插入了乙個節點)

遍歷單鏈表

# include using namespace std;

struct node

};node * head;

//輸入單鏈表

void input(int n)

else

}}//遍歷單鏈表

void show(node * p)

printf("\n");

}// 整體反轉

void reverse(node * p)

head = cur;

}//鍊錶摺疊

void halfreverse(node * phead)

if(len == 1) return;

int mid = len / 2;

p = phead;

int cnt = 0;

//找到鍊錶一半的位置

while(p != null)

node * halfhead = p;

//反轉完成後,cur存放後半部分鍊錶的起點

node * cur = null;

node * tem;

p = p->next;

while(p != null)

halfhead->next = null;

p = phead;

node * curtem;

while(p != null)else

p = tem;

cur = curtem;

}}int main()

鍊錶操作面試題

include using namespace std struct node int value node next node find node phead,int t 一 刪除鍊錶中某個節點 思路 先找到要刪除的節點位置 bool deletet node phead,int t else e...

鍊錶的面試題

1 比較順序表和煉表的優缺點,它們分別在什麼場景下使用?1 順序表支援隨機訪問,單鏈表不支援隨機訪問。2 順序表插入 刪除資料效率很低,時間複雜度為o n 除尾插和尾刪 單鏈表插入 刪除效率更高,時間複雜度為o 1 3 順序表的cpu高速緩衝效率更高,單鏈表cpu高速緩衝效率低。2 列印單向鍊錶 v...

鍊錶操作面試題

include include include define datetype int typedef struct node node,pnode void printlist pnode head 列印鍊錶 printf null n void bubblesort pnode phead 使用...