LeetCode-863. All Nodes Distance K in Binary Tree

网友投稿 275 2022-08-29

LeetCode-863. All Nodes Distance K in Binary Tree

We are given a binary tree (with root node ​​root​​​), a ​​target​​​ node, and an integer value ​​K​​.

Return a list of the values of all nodes that have a distance ​​K​​​ from the ​​target​​ node.  The answer can be returned in any order.

Example 1:

Input: root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2Output: [7,4,1]Explanation: The nodes that are a distance 2 from the target node (with value 5)have values 7, 4, and 1.Note that the inputs "root" and "target" are actually TreeNodes.The descriptions of the inputs above are just serializations of these objects.

Note:

The given tree is non-empty.Each node in the tree has unique values​​0 <= node.val <= 500​​.The​​target​​ node is a node in the tree.​​0 <= K <= 1000​​.

题解:

dfs构造map,bfs找值

class Solution {public: static void bfs (vector &visit, vector &ans, int t, int d, vector> &map, int k) { if (d == k - 1) { for (int i = 0; i < map[t].size(); i++) { if (visit[map[t][i]] == false) { ans.push_back(map[t][i]); } } } if (d != k - 1) { for (int i = 0; i < map[t].size(); i++) { if (visit[map[t][i]] == false) { visit[map[t][i]] = true; bfs(visit, ans, map[t][i], d + 1, map, k); } } } } vector distanceK(TreeNode* root, TreeNode* target, int K) { vector ans; vector visit(501, false); if (root == NULL) { return ans; } if (K == 0) { ans.push_back(target->val); return ans; } vector> map(501, ans); stack dfs; dfs.push(root); while (dfs.empty() == false) { TreeNode* t = dfs.top(); dfs.pop(); if (t->left != NULL) { dfs.push(t->left); map[t->val].push_back(t->left->val); map[t->left->val].push_back(t->val); } if (t->right != NULL) { dfs.push(t->right); map[t->val].push_back(t->right->val); map[t->right->val].push_back(t->val); } } visit[target->val] = true; bfs(visit, ans, target->val, 0, map, K); return ans; }};

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:巴萨时隔21年再度欧冠小组出局,主帅哈维“气坏了”!(哈维走后巴萨拿过欧冠吗)
下一篇:LeetCode-106. Construct Binary Tree from Inorder and Postorder Traversal
相关文章

 发表评论

暂时没有评论,来抢沙发吧~