問題演習: Invert a Binary Tree

今回は 「Invert a Binary Tree」という問題です。難易度は「Easy」です。

この問題はかつて Google の採用面接で使われていました。Mac OS 上でのパッケージ管理システム「Homebrew」の開発者が Google の面接を受けた時に出題された事でも有名です。彼は解くことができず、こんなツイートをしていました。


問題

A の二分木を B のように変換しなさい。ただし、メモリの使用量が最小になるように工夫すること。

A)
      1
    /   \
   2     3
 /  \   /  \
4   5  6    7

B)
      1
    /   \
   3     2
 /  \   /  \
7   6  5    4

解答テンプレート

Javaの例を示します。


入出力例

木構造のルートノードが渡されます。出力には新たな木構造のルートノードを返してください。

解答と解説は、次の投稿で。

---
シリコンバレーでエンジニアとして就職するには、アルゴリズムやプログラミング、システムデザインの問題が出題される面接を突破する必要があります。本サイトでは、シリコンバレーでエンジニアとして働き、面接官としての経験も豊富な筆者が、面接への対策に関する情報を配信しています。

このエントリーをはてなブックマークに追加

コメント

このブログの人気の投稿

問題演習: Hamming Weight

シリコンバレーの物価と家賃

問題演習: Find Max Element per Level in Binary Tree