Javaのバイナリツリーの奇数レベルノードと偶数レベルノードの合計の違い
問題の説明
与えられた二分木で、奇数レベルと偶数レベルのノードの合計の違いを見つけるプログラムを作成します。レベル1でルートを想定し、レベル2でルートの左/右の子などを想定します。
例
5 / \ 2 6 / \ \ 1 4 8 / / \ 3 7 9 Sum of nodes at odd level = 5 + 1 + 4 + 8 = 18 Sum of nodes at even level = 2 + 6 + 3 + 7 + 9 = 27 Difference = -9.
解決策
再帰的走査を使用します。トラバーサル中に、ルートノードとその左右の子の差を返します。
例
以下は、必要な出力を見つけるためのJavaのプログラムです。
class Node {
int data;
Node left, right;
Node(int data){
this.data = data;
this.left = this.right = null;
}
}
public class JavaTester {
public static Node getTree(){
Node root = new Node(5);
root.left = new Node(2);
root.right = new Node(6);
root.left.left = new Node(1);
root.left.right = new Node(4);
root.left.right.left = new Node(3);
root.right.right = new Node(8);
root.right.right.right = new Node(9);
root.right.right.left = new Node(7);
return root;
}
public static int difference(Node node){
if(node == null) return 0;
return node.data - difference(node.left) - difference(node.right);
}
public static void main(String args[]){
Node tree = getTree();
System.out.println(difference(tree));
}
} 出力
-9
-
JavaでのArrayListとHashSetの違い
HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり
-
奇数桁と偶数桁の合計の差のためのPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −整数の場合、奇数桁の合計と偶数桁の合計の差が0であるかどうかを計算する必要があります。 ブルートフォースアプローチでは、数値のすべての偶数桁と奇数桁の合計を計算し、それらを減算して答えを計算します。 計算時間を短縮するために、精神数学の概念を使用します。 上記の制約は、数値が11で割り切れる場合にのみ当てはまります。したがって、以下の実装では、数値の11で割り切れる可能性を確認します。 ここで、複雑さはO(n)から、分割可能性と比較に関係する一定の時間に減少します。 それでは