給你二叉樹的根節點root
和乙個整數distance
。
如果二叉樹中兩個 葉 節點之間的 最短路徑長度 小於或者等於distance
,那它們就可以構成一組 好葉子節點對 。
返回樹中 好葉子節點對的數量 。
示例 1:
輸入:root = [1,2,3,null,4], distance = 3示例 2:輸出:1
解釋:樹的葉節點是 3 和 4 ,它們之間的最短路徑的長度是 3 。這是唯一的好葉子節點對。
輸入:root = [1,2,3,4,5,6,7], distance = 3
輸出:2示例 3:解釋:好葉子節點對為 [4,5] 和 [6,7] ,最短路徑長度都是 2 。但是葉子節點對 [4,6] 不滿足要求,因為它們之間的最短路徑長度為 4 。
輸入:root = [7,1,4,6,null,5,3,null,null,null,null,null,2], distance = 3示例 4:輸出:1
解釋:唯一的好葉子節點對是 [2,5] 。
輸入:root = [100], distance = 1示例 5:輸出:0
輸入:root = [1,1,1], distance = 2輸出:1
/*** definition for a binary tree node.
* public class treenode
* treenode(int val)
* treenode(int val, treenode left, treenode right)
* } */
class
solution
list
left=dfs(root.left,distance,level+1);
list
right=dfs(root.right,distance,level+1);
for(int
l:left)}}
left.addall(right);
return
left;
}public
int countpairs(treenode root, int
distance)
}
好葉子節點對的數量(後序遍歷DFS)
我們需要知道節點的葉子節點到節點的距離,從中選取滿足條件的葉節點對 通過後序遍歷dfs分別構造節點的葉子節點到節點的左孩子的距離以及節點的葉子節點到節點的右孩子距離,通過這兩個距離構造節點的葉子節點到節點的距離 dfs的返回值為vector int 表示節點的葉節點到節點的距離,通過dfs,我們可以...
力扣199場比賽 5474 好葉子節點對的數量
給你二叉樹的根節點 root 和乙個整數 distance 如果二叉樹中兩個 葉 節點之間的 最短路徑長度 小於或者等於 distance 那它們就可以構成一組 好葉子節點對 返回樹中 好葉子節點對的數量 示例 1 輸入 root 1,2,3,null,4 distance 3 輸出 1 解釋 樹的...
PAT 1004 求各層次葉子節點的數量
題意 給乙個樹,求各層次的葉子節點數量 思路 直接通過葉子節點向上遍歷,數出他是第幾層,然後對應層的葉子數量加1.注意要去一下最大層的層數。還有就是只有1個根節點的話,不視作葉子節點。include include include include include include include in...