#include <leetcode.h>
◆ distanceK()
vector< int > leetcode::all_nodes_distance_k_in_binary_tree::Solution::distanceK |
( |
TreeNode * |
root, |
|
|
TreeNode * |
target, |
|
|
int |
k |
|
) |
| |
|
static |
在文件 leetcode.cpp 第 8010 行定义.
8012 return {target->val};
8014 unordered_map<TreeNode *, Node *> um;
8016 queue<TreeNode *> q1;
8019 while(!q1.empty()) {
8020 TreeNode *tn = q1.front();
8022 if(tn->left !=
nullptr) {
8024 um[tn->left] =
new Node(tn->left->val);
8025 um[tn->left]->siblings.insert(um[tn]);
8026 um[tn]->siblings.insert(um[tn->left]);
8028 if(tn->right !=
nullptr) {
8030 um[tn->right] =
new Node(tn->right->val);
8031 um[tn->right]->siblings.insert(um[tn]);
8032 um[tn]->siblings.insert(um[tn->right]);
8035 Node *node = um[target];
8036 unordered_set<Node *> vis;
8037 queue<pair<int, Node *>> q2;
8039 while(!q2.empty()) {
8040 auto [d, nd] = q2.front();
8043 for(
auto *sibling: nd->siblings) {
8044 if(!vis.contains(sibling)) {
8045 vis.insert(sibling);
8047 ans.emplace_back(sibling->val);
8049 q2.push({d + 1, sibling});
引用了 leetcode::TreeNode::left, leetcode::TreeNode::right, acwing::acwing836_408::root , 以及 leetcode::TreeNode::val.
该类的文档由以下文件生成: