题目:
Invert Binary Tree
Invert a binary tree.
4 / 2 7 / / 1 3 6 9to
4 / 7 2 / / 9 6 3 1解答:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# @param {TreeNode} root
# @return {TreeNode}
def invertTree(self, root):
if root is None:
return None
temp = root.left
root.left = root.right
root.right = temp
self.invertTree(root.left)
self.invertTree(root.right)
return root
心得:
做这种面试题的时候,可以把二叉树的构造生成给省略掉,因为面试中,这不是重点,机考中,这是测试代码做的事情。
题目本身不难,但是繁琐。这里并不需要前序便利或者中序遍历或者后序遍历,因为遍历是把树的二叉树结构转化成线性结构。但是我们并不需要转化成线性结构。
大牛没有做出来,是因为大牛之所以为大牛,肯定是Think Diffirent的,根本没有去适应谷歌的面试。那么多的规划互联网上的软件的更新和适应工作环境的软件,就他设计出来的
homebrew取得了最受欢迎的优势,肯定是他有难得的优点。但是谷歌确以此拒绝了他,我觉得这是谷歌的悲哀。
当然,我作为菜鸟还是不要为大牛的前途担忧了。