原创 網絡爲什麼要分層&OSI七層模型及TCP/IP五層體系

網絡爲什麼要分層設計? 想象課本中的乘客從買機票到抵達目的地的全過程,我們將具有相似功能的部分劃分爲同一層,每一層具有兩個功能: 對上一層提供服務 使用來自下面層的服務 分層的優點:(概念化和結構化) 每層的功能明確,使得功

原创 Sort List---148---鏈表排序(歸併)

題目描述:給鏈表排序 input : 4->2->1->3 output : 1->2->3->4 思路:要求在O(nlgn)時間複雜度內,合適的排序方法快排,堆排,歸併,還有O(n)的基數排序桶排序 鏈表的特點不能通過下標訪問

原创 兩小時一起快速搭建個人博客

原文參加我的博客我的新博客 兩個小時的時間我一般用來鑑賞影片,不過搭一個博客剛好也OK。 搭建一個自己的博客需三部曲:下載安裝包,部署環境,美化博客頁面 下載安裝包 本文用的博客是使用Hexo + Github,需要安裝以下內容

原创 我的博客搬家了

親們,CSDN的博文以後可能不再維護了 請移步我的個人博客,網址如下:https://tristawwp.github.io/

原创 Swap Nodes in Pairs---24---交換鏈表相鄰節點

題目描述:交換鏈表中的相鄰節點 input : 1->2->3->4 output : 2->1->4->3 思路: 首先判斷有兩個節點存在,這樣才能完成交換while(pre->next && pre->next->next

原创 Binary Tree Preorder Traversal---144---二叉樹前序遍歷

題目描述:給出一顆二叉樹,返回他的前序遍歷 input 1,null, 2,3 output 1,2,3 思路:兩種解法:遞歸(比較簡單)和迭代 迭代法:遞歸問題本質是棧的調用,所以遞歸寫法可以轉換爲棧寫法 前序遍歷:根-左

原创 Binary Tree Inorder Traversal---94--中序遍歷

題目描述:給出一顆二叉樹,返回他的中序遍歷 input 1,null, 2,3 output 1,3,2 思路:兩種解法:遞歸(比較簡單)和迭代 中序遍歷:左-根-右 首先把根節點push棧中,然後不斷指向左指針,把所有的左

原创 C++之深拷貝&淺拷貝

什麼是拷貝構造函數? 通過拷貝對象的方式創建一個新的對象,拷貝構造函數的參數必須是類對象的引用,也就是將一個對象拷貝給另一個新建的對象(用途,在創建對象的時候,使用同一類之前創建的對象來初始化新創建的對象) Book(Book &

原创 Binary Tree Postorder Traversal---145---後序遍歷

題目描述:給出一顆二叉樹,返回他的後序遍歷 input 1,null, 2,3 output 3,2,1 思路:兩種解法:遞歸(比較簡單)和迭代 迭代法:遞歸問題本質是棧的調用,所以遞歸寫法可以轉換爲棧寫法 後序遍歷:左-右

原创 Maximum Depth of Binary Tree---104--求二叉樹的深度

題目描述:求二叉樹的最大深度,深度優先DFS,遞歸的完美運用 方法一:遞歸遍歷 方法二:層序遍歷增加一個求層數count #include <iostream> #include <vector> #include <queue>

原创 Invert Binary Tree---226---反轉二叉樹

題目描述:反轉二叉樹,把二叉樹變成左右對稱的 方法一:遞歸遍歷,交換當前左右節點,不斷遞歸調用 方法二:類似於層序遍歷,根節點入隊,保存隊首節點並出隊 交換隊首節點的左右子節點,如果左右子節點存在,依次push進隊列 #inclu

原创 Binary Tree Level Order Traversal---102--二叉樹層序遍歷

題目描述:給出一顆二叉樹,返回他的層序遍歷,隊列的解法 input 1,null, 2,3 output {[1],[2],[3]} 思路:層序遍歷是廣度優先的BFS的應用 首先建立一個隊列,根節點入隊 隊列不爲空的情況下,

原创 Linked List Cycle(find the start node)---142--找到環的起始點

題目描述:找到鏈表中環節點 input : 3->2->0->-4 ->2 output : 1 思路:找到頭節點和相遇點到環起始點的關係,可以證明相遇點到環起始點和頭節點到環起始點的距離相等 證明:頭節點到環節點距離x,環節

原创 Two Sum---1---兩數之和兩種解法

這是Leetcode的第一個題目,同時也讓我看到時間複雜度的重要性 本文給出兩個解法,看下優秀的解法大大提高了時間複雜度 題目描述:給一個數組nums=[2,7,11,15],target=9;求出兩個數相加和爲9的下標 方法一:

原创 Remove Duplicates from Sorted ArrayII---80---有序數組去重2

題目描述:有序數組去重,允許重複次數2 思路:同樣採用快慢指針的方法,多增加一個count記錄還有幾次重複,初始值1 1 一開始快指針指向1,慢指針指向0 2 如果快慢指針對應值相等即重複,並且count爲0,那麼快指針走一步 3