[Leet Code] Binary Tree Level Order Traversal
こんにちは!
書類を書きたくないので...アルゴリズムを解く私はははは
今日、5月の3週目に6番目のアルゴリズムBinary Tree Level Order Traversalプールを作成します.
サマリ
与えられた
最初の思いで引き受けた
アルゴリズムを学ぶ前に、木の問題に遭遇すると非常に困難になりますが、今は自分で考えて解決できると思うので嬉しいです>.<
コードについて説明します.
dfs関数
したがって、この場合は
そうでなければ、レベルを示すノードの少なくとも1つが保存されているので、
次に、
今は午前2時過ぎなので、解決が楽です.
難しい問題なら、明け方からがっかりして寝ていたと思います.
今回の位置付けを読んでいただき、ありがとうございます:)質問やフィードバックを歓迎します.
書類を書きたくないので...アルゴリズムを解く私はははは
今日、5月の3週目に6番目のアルゴリズムBinary Tree Level Order Traversalプールを作成します.
質問する
サマリ
与えられた
Binary Tree
からlevel
の間で、node
のvalue
がリストに戻された問題に置かれる.初志
dfs
アルゴリズムを用いて、level
を増やすと、リストに格納されているvalue
が多くなる.最初の思いで引き受けた
アルゴリズムを学ぶ前に、木の問題に遭遇すると非常に困難になりますが、今は自分で考えて解決できると思うので嬉しいです>.<
コードについて説明します.
コードの説明
List<List<Integer>> result;
全局復帰を発表したresult
.result = new ArrayList<>();
dfs(root, 0);
ソリューション関数でresult
を初期化し、dfs
関数を実行します.dfs関数
private void dfs(TreeNode node, int index) {
if (node == null) return;
if (result.size() <= index) result.add(new ArrayList<>());
result.get(index).add(node.val);
dfs(node.left, index + 1);
dfs(node.right, index + 1);
}
パラメータとして、Binary Tree
とツリーレベルを表すindex
を受け入れます.**dfs
の終了条件は、node
なしで**に戻ります.result
がArrayList
として宣言されているため、size
がindex
以下であることは、レベルのノードがリストに追加されていないことを意味する.したがって、この場合は
new ArrayList<>()
add
である.そうでなければ、レベルを示すノードの少なくとも1つが保存されているので、
index
にアクセスしてnode.val
を保存することができる.次に、
node.val
関数を返して、dfs
を保存します.完全なコード
class Solution {
List<List<Integer>> result;
public List<List<Integer>> levelOrder(TreeNode root) {
result = new ArrayList<>();
dfs(root, 0);
return result;
}
private void dfs(TreeNode node, int index) {
if (node == null) return;
if (result.size() <= index) result.add(new ArrayList<>());
result.get(index).add(node.val);
dfs(node.left, index + 1);
dfs(node.right, index + 1);
}
}
の最後の部分
今は午前2時過ぎなので、解決が楽です.
難しい問題なら、明け方からがっかりして寝ていたと思います.
今回の位置付けを読んでいただき、ありがとうございます:)質問やフィードバックを歓迎します.
Reference
この問題について([Leet Code] Binary Tree Level Order Traversal), 我々は、より多くの情報をここで見つけました https://velog.io/@khyunjiee/Leet-Code-Binary-Tree-Level-Order-Traversalテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol