二叉樹中所有距離為K的節點(DFS BFS)

2021-10-08 18:05:30 字數 808 閱讀 9078

為找到與節點距離為k的節點,需解決節點回溯到其父節點的問題,因此需知道每個節點的父節點,使用雜湊表進行儲存,通過dfs建立此雜湊表

將target節點push到佇列中,進行三個方向的bfs(左孩子、右孩子、父節點),為防止重複訪問節點,需使用set儲存已訪問過的節點

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

} vector<

int>

distancek

(treenode* root, treenode* target,

int k)

if( p-

>right && visited.

count

( p-

>right )==0

)if( table.

count

( p )==1

&& visited.

count

( table[p])==

0&& table[p]

!=null)}

k++;}

return ans;}}

;

二叉樹中所有距離為 K 的結點

class tree private static listnodelist null private static class node public void createbintree 對前lastparentindex 1個父節點按照父節點與孩子節點的數字關係建立二叉樹 for int pa...

二叉樹中所有距離為k的結點

一 問題解釋 給定乙個二叉樹 具有根結點root 乙個目標結點target,和乙個整數值k,返回到目標結點target距離為k的所有結點的值的列表。答案可以以任何順序返回。輸入 root 3,5,1,6,2,0,8,null,null,7,4 target 5,k 2 輸出 7,4,1 所求結點為與...

863 二叉樹中所有距離為 K 的結點

給定乙個二叉樹 具有根結點 root 乙個目標結點 target 和乙個整數值 k 返回到目標結點 target 距離為 k 的所有結點的值的列表。答案可以以任何順序返回。示例 1 輸入 root 3,5,1,6,2,0,8,null,null,7,4 target 5,k 2 輸出 7,4,1 解...