問題演習: Invert a Binary Tree
今回は 「Invert a Binary Tree」という問題です。難易度は「Easy」です。
この問題はかつて Google の採用面接で使われていました。Mac OS 上でのパッケージ管理システム「Homebrew」の開発者が Google の面接を受けた時に出題された事でも有名です。彼は解くことができず、こんなツイートをしていました。
---
シリコンバレーでエンジニアとして就職するには、アルゴリズムやプログラミング、システムデザインの問題が出題される面接を突破する必要があります。本サイトでは、シリコンバレーでエンジニアとして働き、面接官としての経験も豊富な筆者が、面接への対策に関する情報を配信しています。
この問題はかつて Google の採用面接で使われていました。Mac OS 上でのパッケージ管理システム「Homebrew」の開発者が Google の面接を受けた時に出題された事でも有名です。彼は解くことができず、こんなツイートをしていました。
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.— Max Howell (@mxcl) June 10, 2015
問題
A の二分木を B のように変換しなさい。ただし、メモリの使用量が最小になるように工夫すること。
A)
1
/ \
2 3
/ \ / \
4 5 6 7
B)
1
/ \
3 2
/ \ / \
7 6 5 4
A)
1
/ \
2 3
/ \ / \
4 5 6 7
B)
1
/ \
3 2
/ \ / \
7 6 5 4
解答テンプレート
Javaの例を示します。入出力例
木構造のルートノードが渡されます。出力には新たな木構造のルートノードを返してください。
解答と解説は、次の投稿で。
---
シリコンバレーでエンジニアとして就職するには、アルゴリズムやプログラミング、システムデザインの問題が出題される面接を突破する必要があります。本サイトでは、シリコンバレーでエンジニアとして働き、面接官としての経験も豊富な筆者が、面接への対策に関する情報を配信しています。
コメント
コメントを投稿