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

2021-09-27 03:03:08 字數 743 閱讀 4957

一、問題解釋:

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