Day19 本週心得體會

haohaoscnblogs發表於2024-08-04

本週學習了二叉樹相關內容,較為深刻的瞭解了dfs的整個過程和各種題目的思考方向。

基礎

二叉樹中最基礎的內容為遞迴序遍歷dfs和層序遍歷bfs,之後的各種題目都是對這兩種方式的應用

  • dfs 深度優先搜尋,對於樹來說就是遞迴序遍歷,對於樹上的每個節點,訪問的時機有三個,第一次遇到,從左孩子返回(第二次遇到),從右孩子返回(第三次遇到,即將退出該節點)。也就是說,處理每個節點的時機也是這三個時機。
  • bfs 廣度優先搜尋,對於樹來說是層序遍歷,透過佇列實現,每次處理一層,每層處理一個。

遞迴序應用思路

  • 區域性 + 遞迴子樹
  • 遍歷處理每個節點,可能要回溯

需要注意的細節

  • 典型的求節點個數的問題如果用遞迴序的兩種思路
    1.可用任意遞迴序遍歷,因為每種遞迴序只統計一次,所以沒有回溯的問題
    2. 典型的樹形DP問題,用後序思路處理
  • 路徑問題等需要回溯(顯式或隱式),以刪去子節點處理的對於接收變數(如列表)的影響,我的具體實現是離開當前節點時刪除當前節點對接收變數的影響
  • 區域性變數與相對全域性變數 可變型別與非可變型別
  • 遞迴函式的成員變數,函式引數與返回值

相關文章