面試題 04 03 特定深度節點鍊錶 DFS

2021-10-14 12:39:37 字數 834 閱讀 4848

面試題 04.03. 特定深度節點鍊錶——dfs

給定一棵二叉樹,設計乙個演算法,建立含有某一深度上所有節點的鍊錶(比如,若一棵樹的深度為 d,則會建立出 d 個鍊錶)。返回乙個包含所有深度的鍊錶的陣列。

示例:輸入:[1,2,3,4,5,null,7,8]

1

/ \

2 3

/ \ \

4 5 7

/ 8

輸出:[[1],[2,3],[4,5,7],[8]]

class

solution_04_03

return

newlistnode[0

];}private

void

dfs(treenode tree,

int deep, listnode[

] res)

else

// 先遞迴遍歷右子樹是因為,如果先遍歷左子樹的話,無法獲取每個層級鍊錶的最後乙個節點

// 先遍歷右子樹的話,就相當於先獲取到每個層級的後面的節點,然後讓當前節點的next指向它

dfs(tree.right,deep+

1,res)

;dfs

(tree.left,deep+

1,res);}

}/**

* 求當前數的深度

* @param tree

* @return

*/private

intgetdeep

(treenode tree)

}

力扣 面試題 04 03 特定深度節點鍊錶

原題鏈結 樹及鍊錶定義如下 definition for a binary tree node.struct treenode definition for singly linked list.struct listnode 本題即為二叉樹層序遍歷的乙個變體,只是將返回由vector 變為vect...

刷題 力扣 面試題 04 03 特定深度節點鍊錶

題目鏈結 題目描述 給定一棵二叉樹,設計乙個演算法,建立含有某一深度上所有節點的鍊錶 比如,若一棵樹的深度為 d,則會建立出 d 個鍊錶 返回乙個包含所有深度的鍊錶的陣列。示例 輸入 1,2,3,4,5,null,7,8 1 2 3 4 5 7 8輸出 1 2,3 4,5,7 8 題目分析 根據題目...

leetcode 特定深度節點鍊錶

給定一顆二叉樹,設計乙個演算法,建立含有某一深度上所有節點的鍊錶 比如,若一顆樹的深度為 d,則會建立出 d 個鍊錶 返回乙個包含所有深度的鍊錶的陣列。這道題使用層次遍歷對二叉樹進行遍歷,在遍歷過程中確定節點屬於哪一層,將同一層的節點放在同乙個鍊錶下即可。在做這道題的時候,我在處理節點層級這個點上處...