I. Title Description
Invert a binary tree.
4 / 2 \ 1 3 6 9
To
4 / 7 \ 9 6 3 1
Trivia:
This problem is inspired by this original tweets by Max Howell:
google:90% of our engineers with the software you wrote (Homebrew), but can ' t invert a binary tree on a whiteboard so Fuck off.
Two. Topic analysis
The subject intention is obvious, namely flipping a binary tree. The following is a few words, the approximate meaning is:
Google: We have 90% of our engineers using the software you wrote (Homebrew? , but you're not going to flip a binary tree on the whiteboard, it's fucked.
This is a problem that any programmer should have, recursive or queue iterative solution can be achieved, do not add more than repeat.
Three. Sample code
// C++,递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution {public: invertTree(TreeNode* root) { ifreturn root; TreeNode* temp = root->left; root->left = root->right; root->right = temp; invertTree(root->left); invertTree(root->right); return root; }};
# Python, recursive# Definition for a binary tree node.# class TreeNode:# def __init__ (self, x):# self.val = x# self.left = None# self.right = None class solution(object): def inverttree(self, root): "" : Type Root:TreeNode:rtype:TreeNode "" " ifRoot is None:return NoneRoot.left, root.right = Root.right, Root.left self.inverttree (root.left) self.inverttree (root.right)returnRoot
Four. Summary
The test instructions helps us to review the basis of the data structure.
Leetcode notes: Invert Binary Tree