我想在C中寫一個遞歸函數,它接收二叉樹中的根,並檢查是否存在等於給定總和的pathtoleaf。例如,它接收在下列樹中的第一個節點:找到等於總和的葉子的路徑(非BST)
1 2 3 5 10 4 20 2
以下是PathToLeaf的例子:
- 1⟶2⟶10
- 2⟶5
- 20⟶2
The followi納克不PathToLeaf:
- 1⟶2
- 1⟶3⟶20
如果路徑存在,則該函數將返回1;如果不是,則返回0.
在這棵樹中,如果sum = 12,那麼函數應該返回1,因爲路徑2⟶10;如果sum = 4,那麼函數應該返回0,因爲唯一路徑(1⟶3)不會以葉結尾。
這裏我最大的問題是我只能管理一個檢查roottoleaf路徑的函數。
而不是一個單一的總和,管理一組總和。當你訪問一個節點時,(1)向當前集合中插入0,(2)將節點的值添加到集合中的所有元素(如算法中)。訪問節點的新孩子的孩子。 –