#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 的淘汰過程。為什麼之前網路請求模組為什麼沒...