每日一題(2020 07 07)112 路徑總和

2021-10-07 20:36:08 字數 1068 閱讀 5767

難度 簡單

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

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

示例:

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

5

/ \4 8

/ / \

11 13 4

/ \ \

7 2 1

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

解法一:深度優先搜尋

class

solution

//如果是葉子節點,則判斷剩餘的 sum 是否等於該節點的值

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

//判斷左右子樹

return

haspathsum

(root.left, sum - root.val)

||haspathsum

(root.right, sum - root.val);}

}

解法二:廣度優先搜尋

在採用佇列來儲存遍歷節點的同時,使用另乙個佇列同步儲存從根節點到該節點的路徑和

class solution 

queuequenode = new linkedlist();

queuequeval = new linkedlist();

quenode.offer(root);

queval.offer(root.val);

while (!quenode.isempty())

continue;

}if (now.left != null)

if (now.right != null)

}return false;

}}

每日一題 1

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...

每日一題2018 3 21

leetcode 2 模擬十進位制運算考察單鏈表基本操作。題無難點,個人基礎需要提高。definition for singly linked list.struct listnode class solution while p while q if shi val s next null ret...

每日一題2018 3 22

leetcode 03 最長不重複子串 第一反應就是動態規劃。看到了網上的方法一。直接把問題簡化為找兩個重複字元間的最長距離,太巧妙了!class solution if i idx max locs s i i return max ling老師的方法二 仍舊轉化為動態規劃,但是為節省空間不再開個...