給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明: 葉子節點是指沒有子節點的節點。
示例:
給定如下二叉樹,以及目標和 sum = 22,
5/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
返回 true, 因為存在目標和為 22 的根節點到葉子節點的路徑 5->4->11->2。
思路: 回溯法
1class
solution112
8if (root.left == null && root.right == null
) 11
return (haspathsum(root.left, sum - root.val)) || (haspathsum(root.right, sum -root.val));12}
13 }
路徑總和 LeetCode 112
因為是從根節點到葉節點的,因此不用關心中間節點,只要在判斷走到葉節點時,一層層減去每一層的節點的值與當前葉子 節點的值一致,則肯定滿足條件。另外,注意避免下面注釋的2個坑。definition for a binary tree node.struct treenode class solution...
LeetCode寫題歷程 112 路徑總和
1.題目描述 給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點 2.解題思路 1 因為求得時根節點到葉子節點的路徑和,所以每一次遍歷的中止條件是當前節點的左右節點都為空。2 使用乙個中間變數temp對遍歷過程...
LeetCode 第63題 不同路徑
不同路徑 乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?網格中的障礙物和空位置分別用 1 和 0 來表示...