為找到與節點距離為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 解...