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

2021-08-24 20:43:48 字數 1155 閱讀 7393

給定乙個二叉樹(具有根結點 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]

解釋:所求結點為與目標結點(值為 5)距離為 2 的結點,

值分別為 7,4,以及 1

注意,輸入的 "root" 和 "target" 實際上是樹上的結點。

上面的輸入僅僅是對這些物件進行了序列化描述。

給定的樹是非空的,且最多有 k 個結點。

樹上的每個結點都具有唯一的值 0 <= node.val <= 500 。

目標結點 target 是樹上的結點。

0 <= k <= 1000.

解法:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution ;

unordered_map> mp;

queuequ;

solution(root, nullptr, mp);

qu.push(target);

sets;

s.insert(target);

vectorres;

while(!qu.empty())

return res;

}int n = qu.size();

while(n--)

}k--;

}return {};

}void solution(treenode *root, treenode *pre, unordered_map> &mp)

solution(root->left, root, mp);

solution(root->right, root, mp);}};

二叉樹中所有距離為 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 所求結點為與...

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

為找到與節點距離為k的節點,需解決節點回溯到其父節點的問題,因此需知道每個節點的父節點,使用雜湊表進行儲存,通過dfs建立此雜湊表 將target節點push到佇列中,進行三個方向的bfs 左孩子 右孩子 父節點 為防止重複訪問節點,需使用set儲存已訪問過的節點 definition for a ...