一、問題解釋:
給定乙個二叉樹(具有根結點root
), 乙個目標結點target
,和乙個整數值k,返回到目標結點target
距離為k
的所有結點的值的列表。 答案可以以任何順序返回。
輸入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, k = 2
輸出:[7,4,1]
所求結點為與目標結點(值為 5)距離為 2 的結點, 值分別為 7,4和 1。
二、思路解釋:
1.從目標結點target出發,建立一棵新的樹存入陣列tree 中;
2.進行k次遍歷,第一次遍歷,找出距離target為1的結點,存入新書tree中(原target的父節點和子節點,作為target的子節點);
3.第二次遍歷,找出距離target為2的結點,存入新樹tree中;……以此類推,最終到達距離該目標節點距離為k的所有節點,將它們都儲存在新樹tree中儲存。
4.經過以上步驟,就可以將原來的二叉樹變為一棵以目標結點為target為根結點,以距離目標結點target為k的結點為葉子結點的多叉樹;
5.利用層次遍歷的方法,將新樹tree中距離根結點target為k的那層結點全部輸出。
二叉樹中所有距離為 K 的結點
class tree private static listnodelist null private static class node public void createbintree 對前lastparentindex 1個父節點按照父節點與孩子節點的數字關係建立二叉樹 for int pa...
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 解...
二叉樹中所有距離為K的節點(DFS BFS)
為找到與節點距離為k的節點,需解決節點回溯到其父節點的問題,因此需知道每個節點的父節點,使用雜湊表進行儲存,通過dfs建立此雜湊表 將target節點push到佇列中,進行三個方向的bfs 左孩子 右孩子 父節點 為防止重複訪問節點,需使用set儲存已訪問過的節點 definition for a ...