題目描述
輸入一顆二叉樹的跟節點和乙個整數,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,陣列長度大的陣列靠前)
思路:從根節點開始遍歷,遇到乙個數字就將該節點得值壓入陣列,若該節點的值等於剩下的值,並且左右都都為空,就將該陣列壓入結果。否則,判斷左節點有沒有樹,然後右節點,呼叫該函式,(前序遍歷,)然後此時如果該陣列不為空,那就彈出乙個節點。
**:
class
solution
findpath
(root-
>left,expectnumber-root-
>val)
;findpath
(root-
>right,expectnumber-root-
>val);if
(tmp.
size()
!=0)//重點處可多看
tmp.
pop_back()
;return buffer;}}
;
劍指offer之二叉樹總結
會用遞迴了二叉樹的問題就會一大半了.一.用遞迴求解 對於要利用二叉樹的規律的題都可以利用它的左節點也是其左子樹的根節點的特性來遞迴求解。可以說那種引數有根節點的題一般都可以用遞迴來解決,來看看 劍指offer 中可用遞迴解決的題 1.根據前序遍歷的性質,第乙個元素必然就是root,那麼下面的工作就是...
(十七)劍指offer之二叉樹中和為某一值的路徑
題目描述 輸入一顆二叉樹和乙個整數,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。struct treenode class solution private vector result vector path void find ...
劍指offer之二叉樹中和為某一值的路徑 C
題目 請在這裡輸入輸入一顆二叉樹的根節點和乙個整數,按字典序列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。class solution path2.push back root val expectnumber root val i...