好葉子節點對的數量(後序遍歷DFS)

2021-10-08 18:07:36 字數 1519 閱讀 7151

我們需要知道節點的葉子節點到節點的距離,從中選取滿足條件的葉節點對

通過後序遍歷dfs分別構造節點的葉子節點到節點的左孩子的距離以及節點的葉子節點到節點的右孩子距離,通過這兩個距離構造節點的葉子節點到節點的距離

dfs的返回值為vector< int >,表示節點的葉節點到節點的距離,通過dfs,我們可以知道葉節點到節點的左孩子的距離以及到節點的右孩子的距離,這兩個距離+1即為葉節點到節點的距離,若有滿足條件的距離,將此距離加入到儲存葉節點到節點的距離的vector中

再從儲存葉節點到節點的左孩子距離的vector以及儲存到右孩子距離的vector中各選乙個距離,若距離之和滿足條件,則滿足條件的葉節點對數量+1

/**

* definition for a binary tree node.

* struct treenode

* treenode(int x) : val(x), left(nullptr), right(nullptr) {}

* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}

* };

*/class

solution

;else

if( root-

>left==

null

&& root-

>right==

null

)return

; vector<

int> root_leaf;

vector<

int> left_leaf;

left_leaf=

dfs( root-

>left,distance,ans )

; vector<

int> right_leaf;

right_leaf=

dfs( root-

>right,distance,ans )

;for

(auto x:left_leaf )

for(

auto y:right_leaf )

for(

auto xx:left_leaf )

for(

auto yy:right_leaf )

return root_leaf;

}int

countpairs

(treenode* root,

int distance)

};

1530 好葉子節點對的數量

給你二叉樹的根節點root和乙個整數distance。如果二叉樹中兩個 葉 節點之間的 最短路徑長度 小於或者等於distance,那它們就可以構成一組 好葉子節點對 返回樹中 好葉子節點對的數量 示例 1 輸入 root 1,2,3,null,4 distance 3 輸出 1 解釋 樹的葉節點是...

力扣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...