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