劍指offer(層次遍歷,帶main函式)

2021-10-03 04:45:26 字數 1268 閱讀 4629

注意:

分析方法一:雙指標法

/**

* 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...