LeetCode112 路徑總和

2022-07-11 11:15:15 字數 1177 閱讀 9914

非商業,leetcode鏈結附上:

進入正題。

題目:

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。

說明: 葉子節點是指沒有子節點的節點。

示例:

給定如下二叉樹,以及目標和 sum = 22,

返回 true, 因為存在目標和為 22 的根節點到葉子節點的路徑 5->4->11->2。

**實現:

//節點

class treenode

}//方法一 遞迴

public boolean haspathsum(treenode root, int sum)

if(root.left == null && root.right == null)

return haspathsum(root.left, sum - root.val) || haspathsum(root.right, sum - root.val);

}//時間複雜度o(n),空間複雜度:o(h),其中 h 是樹的高度。

//方法二 迭代

public boolean haspathsum(treenode root, int sum)

queuequenode = new linkedlist<>();

queuequeval = new linkedlist<>();

quenode.offer(root);

queval.offer(root.val);

while (!quenode.isempty())

continue;

}if(node.left != null)

if(node.right != null)

}return false;

}//時間複雜度o(n),空間複雜度o(n)

分析:遞迴的方法,判斷終止條件,並逐漸縮小問題規模;

迭代的方法,初始化乙個佇列(queue),記錄到每乙個節點對應的路徑值。

--end

LeetCode112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11 2。遍...

LeetCode 112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1 返回 true,因為存在目標和為 22 的根節點到葉子節點的路徑 5 ...

Leetcode 112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721 返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11 2。...