leetcode系列(11)二叉树翻转 Invert Binary Tree

原创 2015年07月07日 22:04:41

Invert a binary tree

     4
   /   \
  2     7
 / \   / \
1   3 6   9
to
     4
   /   \
  7     2
 / \   / \
9   6 3   1

整个题目有意思的是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.

用递归可以方便解决,invert根节点的左子树和子树,然后交换两个子树木,就是invert了整个树

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:
    TreeNode* invertTree(TreeNode* root) {
        if (root != NULL) {
            TreeNode* tmp = root->left;
            root->left = invertTree(root->right);
            root->right = invertTree(tmp);
        }
        return root;
    }
};

Python代码

# 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 != None:
            tmp = root.left
            root.left = self.invertTree(root.right)
            root.right = self.invertTree(tmp)
        return root



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[LeetCode] Invert Binary Tree - 二叉树翻转系列问题

目录: Binary Tree Level Order Traversal - 二叉树层次遍历 BFS 题目背景是MaxHowell(他是苹果电脑最受欢迎的homebrew程序作者)去Google面试...

leetcode 226 Invert Binary Tree 翻转二叉树

大牛没有能做出来的题,我们要好好做一做     Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to ...

LeetCode 226 Invert Binary Tree(转换二叉树)

翻译将下图中上面的二叉树转换为下面的形式,具体为每个左孩子节点和右孩子节点互换位置。原文如上图分析每次关于树的题目出错都在于边界条件上……所以这次仔细多想了一遍:void swapNode(TreeN...
  • NoMasp
  • NoMasp
  • 2015-12-27 12:31
  • 2504

LintCode --invert-binary-tree(翻转二叉树)

LintCode --invert-binary-tree(翻转二叉树) 原题链接:http://www.lintcode.com/zh-cn/problem/invert-binary-tre...

PAT (Advanced Level) Practise 1102. Invert a Binary Tree (25) 二叉树的层序和中序遍历

1102. Invert a Binary Tree (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 1...

[LeetCode] Binary Tree Paths - 二叉树基础系列题目

题目概述:Binary Tree Paths - 二叉树路径 Given a binary tree, return all root-to-leaf paths. For example, give...

Leetcode 103 ,Binary Tree Zigzag Level Order Traversal(二叉树Z形分层遍历)

一,问题描述1,1,给定一棵二叉树,从上到下,进行Z字行分层遍历的,即:本层的话从左打到右,那么下层就是从右到左,最后输出结果。2,例如: 3,解题思路: 这题和第102题解法类似,对10...

(二叉树z字形层次遍历)LeetCode#103. Binary Tree Zigzag Level Order Traversal

按照z字形层次遍历二叉树

LeetCode | Binary Tree Maximum Path Sum(二叉树的路径最大值)

Given a binary tree, find the maximum path sum. The path may start and end at any node in the tre...

leetcode 236. Lowest Common Ancestor of a Binary Tree-二叉树共同祖先|深度遍历|递归|非递归

原题链接:236. Lowest Common Ancestor of a Binary Tree 【思路-Java】dfs|递归实现 本题是二叉树的深度遍历的典型应用,基础还是二叉树的遍历。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)