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. (咱們90%的工程師都用你寫的軟件可是咱們不能聘用你)javascript
吊吊吊,著名homebrew的初創者Howell前往google面試ios開發,結果還沒問到ios技術問題的時候就已經掛了,並且死在反轉二叉樹,有那麼點意思。果真title在我g廠面試仍是渣渣,我g廠從不缺title前端
我這個代碼也是在網上看到的,直接抄過來的知乎java
class Solution:
# @param {TreeNode} root
# @return {TreeNode}
def invertTree(self, root):
from Queue import Queue
q = Queue()
q.put(root)
while not q.empty():
node = q.get()
if not node:
continue
node.left, node.right = node.right, node.left
if node.left:
q.put(node.left)
if node.right:
q.put(node.right)
return root
複製代碼
這個類寫的老夫懵逼了,老夫在git上看到一個簡單一點的方法,順便也貼出來把node
function binaryTree(node) {
if(!node) return
let left = binaryTree(node.left)
let right = binaryTree(node.right)
if(left) node.left = right
if(right) node.right = left
return node
}
複製代碼
忽然想到可能不少同窗對二叉樹沒什麼概念,我就把這個相似的樹寫出來吧ios
let tree = {
left: {
left: {
value: 1
},
right: {
value: 2
},
value: 3
},
right: {
left: {
value: 6
},
right: {
value: 7
},
value: 8
},
value: 10
}
複製代碼