注意:
分析方法一:雙指標法
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
return node1;}}
;
方法2:雙指標提前法
計算兩個鍊錶的長度差值m,讓較長的鍊錶先走m步,然後兩個鍊錶再同時遍歷,相遇時就是該節點
時間複雜度:o(n)
空間複雜度:o(1)
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
}else
}/*此時兩鍊錶同時開始遍歷,相遇時,返回該節點即可*/
while
(heada!=headb)
return headb;
}/*計算鍊錶長度*/
分析c++ 二叉樹的層序遍歷bfs
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
res.
push_back
(r);
}return res;}}
;
#include
#include
#include
using
namespace std;
struct treenode};
class
solution
return res;}}
;// 以下為測試
intmain()
劍指offer 遍歷搜尋
1.廣度優先思想 適合題目 給定初始狀態跟目標狀態,要求從初始狀態到目標狀態的最短路徑。輔助資料結構是佇列。1.1 prime最小生成樹 1.2 dijkstra單源最短路徑演算法 1.3 樹的分層遍歷,二叉樹的最小深度 1.4 走迷宮,從起點到終點的最短路徑 定義乙個二維陣列 int maze 5...
劍指offer 二叉樹的層次遍歷
題目 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。解題思路 建立乙個佇列,先將二叉樹的根節點放入佇列中,然後開始迴圈,只要佇列不為空,獲取佇列的第乙個元素,將其儲存為乙個節點tmp,接著將其push back到新陣列裡面,然後判斷其左孩子是否為空,若其不為空,將其push到佇列中,然後再繼...
劍指offer 二叉樹層次遍歷(Python)
從上往下列印出二叉樹的每個節點,同層節點從左至右列印。借助佇列。從根節點開始,依次將節點入佇列,判斷是否有孩子節點,然後將孩子節點入佇列,同時將該節點出佇列。coding utf 8 class treenode def init self,x self.val x self.left none s...