一.基礎
1.C++定義
2.內(nèi)存分配
head = (Node*)malloc(sizeof(Node));
分配一個Node*類型的內(nèi)存,大小為sizeof(Node)乖订,即Node結(jié)構(gòu)所占的大小
3.生成一個單向鏈表
4.生成雙向鏈表
二.鏈表相關的操作
1.反轉(zhuǎn)一個單向鏈表并返回新鏈表的頭
2.合并兩個單向有序鏈表
3.逆序合并兩個有序單向鏈表
分析:(1)反轉(zhuǎn)兩個單向鏈表(2)合并兩個鏈表
思考:如何在一個遍歷內(nèi)完成這兩個操作(減小時間復雜度和空間復雜度)须教,分別維護兩個鏈表的當前位置计贰,在反轉(zhuǎn)的過程中比較大小,完成合并
和反轉(zhuǎn)一個單向鏈表類似憔鬼,只不過是每次比較大小來區(qū)分當前的節(jié)點temp赫粥,本質(zhì)上并沒有什么變化观话,這個又不需要額外空間復雜度,又不需要遍歷多次傅是,效率最高匪燕,想想自己之前不思考寫的方法蕾羊,實在是太憨憨了。