常考数据结构与算法----给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,
生活随笔
收集整理的這篇文章主要介紹了
常考数据结构与算法----给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
給定一個二叉樹和一個值sum,請找出所有的根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的節(jié)點(diǎn)值之和等于sum?的路徑,
例如:
給出如下的二叉樹,sum=22,
返回
[
[5,4,11,2],
[5,8,9]
]
?
示例1
輸入
{1,2},1返回值
[]示例2
輸入
{1,2},3返回值
[[1,2]]?
思路:使用遞歸
?從根節(jié)點(diǎn)開始,遍歷每一個結(jié)點(diǎn)(深度優(yōu)先遍歷),將該結(jié)點(diǎn)的值放入當(dāng)前ArrayList中
判斷當(dāng)前結(jié)點(diǎn)是否為葉子結(jié)點(diǎn) 以及 當(dāng)前的路徑和是否與sum相等?
步驟2中的兩個條件都滿足時,則將list加入到結(jié)果集中。否則回退,刪除list的最后一個元素(該元素可能不是葉節(jié)點(diǎn),也可能當(dāng)前路徑不等于sum)
?
?
總結(jié)
以上是生活随笔為你收集整理的常考数据结构与算法----给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常考数据结构与算法:合并k个已排序的链表
- 下一篇: c库IO函数