關於單鏈表的一些常見問題

2021-08-04 04:41:52 字數 1214 閱讀 6918

#includeusing namespace std;

#include#includestruct listnode

};typedef listnode node;

void pushback(node* node,int data)

void printlist(node* node)

printf("\n");

}//合併兩個有序鍊錶

node* solution(node* l1,node* l2,node* l3)

if (l2 == null)

while (l1&&l2)

else

}return l3;

} //刪除無頭鍊錶非尾節點

void deletenoheadnode(node* pos)

else if (pos->_next == null)

else

}//從尾到頭列印單鏈表

void printlast(node* head)

while (!s.empty()) }

void printlast_r(node* head)

}}

//逆置

node* reverse(node* head)

cur = head;

while (cur)

return prev;

}

struct listnode

};//尋找第k個節點

listnode* findk(listnode*phead, const int k)//只能遍歷一次

while (first)

return second;

}//判斷鍊錶是否帶環//o(n)

pair*, bool> i***itsloop(node* head)

return make_pair(fast, false);

}若帶環求環的長度//o(n)

int length(node* head)

return count;

}若帶環求環的入口點//o(n)

node* findloopport(node* head)

return cur;

}

單鏈表的一些常見題目

有乙個單鏈表,其中可能有乙個環,也就是某個節點的next指向的是鍊錶中在它之前的節點,這樣在鍊錶的尾部形成一環。問題 1 如何判斷乙個鍊錶是不是這類鍊錶?2 如果鍊錶為存在環,如果找到環的入口點?解答 一 判斷鍊錶是否存在環,辦法為 設定兩個指標 fast,slow 初始值都指向頭,slow每次前進...

dedecms一些常見問題

1 list和arclist的區別 首頁的列表呼叫,以及其它內頁的側邊欄,這些地方都可以使用arclist標籤,並且還可以根據typeid id 來指定呼叫哪個欄目下的列表 list 標籤還有乙個不同處就是分頁,我們知道在 製作中分頁功能是 欄目列表頁必不可少的乙個功能,而這個功能用arclist標...

Redis一些常見問題

1.多個系統同時併發競爭乙個key zookeeper分布式鎖 儲存到mysql的時候帶有時間戳 這樣redis裡面存的也有時間戳了 2.redis執行緒模型 核心操作模組 如網路請求模組 由單執行緒完成,當然另外還有一些 輔助線程 從旁協助,比如 lru 的淘汰過程。為什麼之前網路請求模組為什麼沒...