Top40Binary Tree Coding Interview Questions for Programmers

多くのプログラマと私の読者は、配列、リンクリスト、文字列、ソフトウェア設計、パターン、ハッシュテーブル、およびデータ構造全般に対して行ったように、バイナリツリーベースのコーディングインタビューの質問を共有するように頼んでいます。 このタスクは実際にはかなりの時間保留されていましたが、私が収集した可能性のあるすべての質問の解決策を見つけようとしていました。 だから、私は今、バイナリツリーのインタビューの質問のリストを公開し、おそらく後で別の記事として解決策を公開することにしました。 これは、インターフェイスを作成し、後で実装を提供して、インターフェイスに依存している他の人をブロックしないようにするようなものです(実際には、Javaや他のプログラミング言語でインターフェイスを使用することの利点の一つです)。

二分木データ構造とは何ですか?

とにかく、バイナリツリーに戻って、私はあなた自身でこれらの質問を解決するのに役立つ一般的なツリーデータ構造に関する有用な点のいくつかを再イ これは、組織構造、家系図などのツリーデータ構造を使用して階層情報を格納できることを意味します。
2)ツリーにはノードと子があります。 一番上のノードまたは最初のノードはルートと呼ばれます。
3)視覚化したい場合、ツリーデータ構造は現実世界では反転ツリーのようなものです。 つまり、あなたの周りに木を見ると、その根は一番下にありますが、プログラミングやコンピュータサイエンスで木のデータ構造を描くと、その根は一番上
4)二分木は特別な木であり、最大でも二人の子を持つことができます。 つまり、1つのノードは子なし、1つの子、または2つの子のいずれかを使用できます。 彼らは三人以上の子供を持つことはできません。
5)子を持たないすべてのノードはリーフノードとして知られています。
6)二分探索木は、左の部分木の値がroot以下であり、右の部分木のノードの値がroot以上である特別なタイプの二分木です。 これにより、バイナリ検索ツリーにソート構造が提供され、検索が非常に高速になります。
また、データ構造とアルゴリズムをチェックすることができます:UdemyのJavaコースを使用して深いダイビング二分探索木の詳細を学ぶために. それはあなたのデータ構造とアルゴリズムのスキルを更新するための最良のコースの一つです。

二分木データ構造インタビューの質問

7) 二分探索木は、反復ごとに入力サイズを半分に減らすという原則に基づいて動作する二分探索と密接に関連しています。 これにより、検索が非常に高速になり、o(logN)時間にバイナリ検索ツリー内の任意の要素を見つけることができますが、ツリーがバランスされている場合に
8)ツリーデータ構造をトラバースするには、深さ優先またはレベル優先の二つの方法があります。 深さ-最初に、訪問するノードがなくなるまで下に移動し、同じレベルのノードを訪問するために戻ってきます。
レベル順トラバーサル中は、次のレベルに移動する前に、同じレベルのすべてのノードにアクセスします。 また、バイナリツリーのノードをトラバースするために使用されるバイナリのプリオーダー、ポストオーダー、およびインオーダートラバーサルもあります。 Inorderトラバーサルは、ソートされた順序ですべてのノードを訪問するため、特別です。
9)バランスの取れたバイナリツリーは、各サブツリーに等しい数のノードを持つようなものです。:
10)アンバランスまたは非平衡二分探索木は、平衡二分探索木のO(logN)時間とは対照的に、検索がO(n)時間を取るリンクリストのように動作します。
これらは、すべてのプログラマが二分木データ構造について知っておくべき重要なポイントのいくつかです。 これは、ツリーベースのコーディングの問題を解決するのに役立ちます。 バイナリツリーやその他のデータ構造について詳しく知りたい場合は、Data Structures and Algorithms:Deep Dive Using Java on Udemyのような優れたデータ構造とアルゴリズムコースに参加して、基礎を磨くことをお勧めします。

40+ JavaプログラマのためのBinary Tree Interview Questions

あなたの時間のこれ以上を無駄にすることなく、ここでは、プログラミングの就職の面接からバイナリツリーとバイナリ 可能な限り解決策にリンクしていますが、リンクがない場合は、Google検索を実行するだけで解決策を見つけることもできます。 彼らは非常に人気のある質問であり、多くの人々がすでにそれらを解決しています。
このリストを最大限に活用するには、解決策を検討する前に問題を解決しようとするだけで、あなたの心が働き、課題に直面し、理解を統合します。 あなたはすぐに解決策を見れば、あなただけの10%を学びますが、あなたがしようとすると、各質問の背後にある概念やトリックの80-90%を学びます。
1)Javaでバイナリツリーの最低共通祖先をどのように見つけるのですか? (解決策)
2)Javaでバイナリツリーの左のビューを印刷するにはどうすればよいですか? (解決策)
3)JavaでInorderとPreOrder traversalからツリーを構築するプログラムを書く? (解決策)
4)Javaの2つのバイナリ検索ツリーに共通ノードをどのように印刷しますか? (解決策)
5)優先順位キューを実装するためにバイナリヒープがBSTよりも優れているのはなぜですか? (回答)
6)与えられた二分木がバランスされているかどうかをどのようにチェックしますか? バイナリツリーを受け取り、balancedの場合はtrueを返し、それ以外の場合はfalseを返すJavaメソッドを記述します。 (解決策)
7)ハッシュテーブルのデータ構造よりもバイナリ検索ツリーのいくつかの利点は何ですか? (回答)
8)与えられた二分木が別の二分木の部分木であるかどうかをどのようにチェックしますか? (解決策)

2つのバイナリツリーを指定しましたが、最初のバイナリツリーが2番目のバイナリツリーのサブツリーである場合はtrueを返す必要があります。 二分木BTの部分木は、BTとそのすべての子孫からなるノードからなる木Tです。 たとえば、次の場合、T1は二分木BT
の部分木です9)二分木内の二つのノード間の距離をどのように見つけますか? (解決策)
10)Javaのバイナリツリーで最も低い共通の祖先を見つける方法は? (解決策)
11)指定された二分木のすべての葉が同じレベルにあるかどうかをチェックするJavaプログラムを記述しますか? (解決策)
12)Javaで指定されたバイナリツリーを二重リンクリストに変換するにはどうすればよいですか? (解決策)
13)Javaで特定の二分木の深さを見つけるプログラムを書く? (解決策)
14)二分探索木と二分探索木の違いは何ですか? (回答)
15)自己均衡木とは何ですか? (回答)
16)AVLツリーとは何ですか? (回答)
17)二分探索木の事前注文トラバーサルを印刷するJavaプログラムを書く? 反復と再帰の両方を使用して解決策を与えますか? (解決策)
18)BSTのpost-order traversalを印刷しますか? 反復的および再帰的アルゴリズムを与える(解決策)
19)JavaでBSTのinorderトラバーサルを出力しますか? 反復アルゴリズムと再帰アルゴリズムの両方を与える(解)
20)2つのノードが交換されるBSTを与えましたか? 元のBSTをどのように回復しますか? (解決策)
21)javaでバイナリツリーをバイナリ検索ツリーに変換するにはどうすればよいですか? (解決策)
22)Javaで指定された二分木の最大のBSTサブツリーを見つけますか? (解決策)
23)二分木と同じレベルでノードを接続するJavaプログラムを書く? (解決策)
24)Trieデータ構造とは何ですか? (回答)
25)二分木とトライの違いは何ですか? (回答)
26)Javaでバイナリツリーの特定のノードの祖先を印刷しますか? (解決策)
27)バイナリツリー内の特定のノードのレベルを出力するJavaプログラムを記述しますか? (解決策)
28)Javaで与えられた2つのBSTの共通ノードを印刷しますか? (解決策)
29)バイナリツリーを与え、Javaですべてのルートからリーフへのパスを印刷しますか? (解決策)
30)Javaで再帰なしでInorder tree traversalを印刷しますか? (解決策)
31)javaで再帰とスタックなしでプリオーダーツリートラバーサルを印刷しますか? (解決策)
32)Javaで再帰なしでPostOrder tree traversalを印刷しますか? (解決策)
33)指定されたバイナリツリーがBSTかどうかをチェックするJavaプログラム? (解決策)
34)二分木の葉ノードを数えるJavaプログラムを書く? (解決策)
35)二分木の高さや深さを見つけるためのJavaプログラムを書く? (解)
36)与えられた二つの二分木が同じかどうかはどうやってわかりますか? (解決策)
二つのバイナリツリーを受け入れ、それらが同じ場合はtrueを返し、そうでない場合はfalseを返すJavaでメソッドを記述します。
37)Javaのバイナリ検索ツリーから特定のノードを削除するにはどうすればよいですか? (解決策)
38)バイナリ検索ツリーに特定のノードを追加するJava関数を記述しますか? (解決策)
39)Javaでバイナリツリーを垂直順序で印刷しますか? (解決策)
40)赤-黒の木のデータ構造とは何ですか? (回答)
Answer-Red-Black Treeは、すべてのノードが次のプロパティを持つ自己バランス二分探索木(BST)です
A)すべてのノードは、赤または黒のいずれかの色を持っています。
b)木の根は常に黒である。
c)隣接するredノードが2つありません(redノードはredの親またはredの子を持つことはできません)。
d)ルートからヌルノードまでのすべてのパスには、同じ数の黒ノードがあります。
また、Javaのデータ構造をチェックすることができます:赤黒い木のデータ構造についての詳細を学ぶために教育上のインタビューの復習コース。

プログラマのためのトップ40二分木コーディングインタビューの質問

それはプログラミングインタビューからのトップ40二分木と二分探索木ベースのコーディング問題のこのリストにあるすべてです。 解決策はJavaプログラミング言語で提供されていますが、Python、C、C++、JavaScript、Ruby、Swiftなど、選択したプログラミング言語でこれらの質問を解決することを歓迎します。 また、コミュニティがソリューションをレビューし、有用なフィードバックを提供できるように、コメントセクションにソリューションを投稿することもできます。
あなたのコーディングのインタビューのためのすべてのベスト。
さらなる学習
11本質的なコーディングインタビューの質問。
コーディングインタビューをマスター:データ構造+アルゴリズム
コーディングインタビューをグロ: コーディングの質問のパターン
その他のコーディングのインタビューの質問lあなたは

  • javaで挿入ソートアルゴリズムを実装する方法が好きかもしれませんか? (tutorial)
  • クイックソートアルゴリズムをJavaで適用するにはどうすればよいですか? (tutorial)
  • Javaでバブルソートアルゴリズムを実装するには? (チュートリアル)
  • 比較ベースと非比較ベースのソートアルゴリズムの違いは? (回答)
  • Javaでバケットソートを適用するにはどうすればよいですか? (チュートリアル)
  • 再帰なしでクイックソートアルゴリズムを実装するには? (tutorial)
  • Javaでバイナリ検索アルゴリズムを実行するにはどうすればよいですか? (チュートリアル)
  • 合計がkに等しい配列内のすべてのペアを見つける方法(解)
  • Javaの配列から重複を削除する方法は? (解決策)
  • ソートせずに配列内の最も重要で最小の数を見つけるにはどうすればよいですか? (解決策)
  • Javaでソートされていない配列から重複を見つけるにはどうすればよいですか? (解決策)
  • ソートされた配列内の欠落している番号を見つける方法は? (解決策)
  • 1から100を含む配列から欠損値を見つけるにはどうすればよいですか? (解決策)
  • 50+インタビューからのデータ構造とアルゴリズムの問題(質問)
  • データ構造を深く学ぶための私のお気に入りの無料コース(FreeCodeCamp)
  • Javaで配列から要素を削除す (解決策)
  • 配列に特定の値が含まれているかどうかを確認するにはどうすればよいですか? (解決策)
  • プログラマーのための10の無料データ構造とアルゴリズムコース(コース)
  • インタビューからの100+データ構造コーディング問題(質問)

この記事を読んでくれてありがとう。 この記事が好きなら、あなたの友人や同僚と共有してください。 ご質問やご意見がある場合は、メモを削除してください。
P.S.-データ構造とアルゴリズムの理解を深めるための無料のアルゴリズムコースを探している場合は、UdemyのEasy to Advanced Data Structuresコースも確認する必要があります。 これは、Googleのソフトウェアエンジニアとアルゴリズムの専門家によって作成され、それはコストの完全に無料です。

You might also like

コメントを残す

メールアドレスが公開されることはありません。