226. Invert Binary Tree Difficult: Easy

本文介绍了一种翻转二叉树的算法实现,通过递归方式交换节点的左右子树,提供了C语言和Python两种版本的代码示例。

Invert a binary tree.

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

to

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

算法分析:可以用层序遍历的方法交换左右子树,也可以直接递归。

C语言版

struct TreeNode* invertTree(struct TreeNode* root) {
    if(root)
    {
        struct TreeNode *temp = root->right;
        root->right = invertTree(root->left);
        root->left = invertTree(temp);
    }
    return root;
}

Python版

class Solution(object):
    def invertTree(self, root):
        """
        :type root: TreeNode
        :rtype: TreeNode
        """
        if root:
            root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
        return root
E:\python3.9.13\python.exe E:\pycharm\study\object\GUI.py E:\pycharm\study\object\GUI.py:516: UserWarning: Glyph 31867 (\N{CJK UNIFIED IDEOGRAPH-7C7B}) missing from font(s) DejaVu Sans. self.probability_canvas.draw() E:\pycharm\study\object\GUI.py:516: UserWarning: Glyph 21035 (\N{CJK UNIFIED IDEOGRAPH-522B}) missing from font(s) DejaVu Sans. self.probability_canvas.draw() E:\pycharm\study\object\GUI.py:516: UserWarning: Glyph 27010 (\N{CJK UNIFIED IDEOGRAPH-6982}) missing from font(s) DejaVu Sans. self.probability_canvas.draw() E:\pycharm\study\object\GUI.py:516: UserWarning: Glyph 29575 (\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) DejaVu Sans. self.probability_canvas.draw() E:\pycharm\study\object\GUI.py:516: UserWarning: Glyph 20998 (\N{CJK UNIFIED IDEOGRAPH-5206}) missing from font(s) DejaVu Sans. self.probability_canvas.draw() E:\pycharm\study\object\GUI.py:516: UserWarning: Glyph 24067 (\N{CJK UNIFIED IDEOGRAPH-5E03}) missing from font(s) DejaVu Sans. self.probability_canvas.draw() E:\pycharm\study\object\GUI.py:528: UserWarning: Glyph 31867 (\N{CJK UNIFIED IDEOGRAPH-7C7B}) missing from font(s) DejaVu Sans. self.chart_canvas.draw() E:\pycharm\study\object\GUI.py:528: UserWarning: Glyph 21035 (\N{CJK UNIFIED IDEOGRAPH-522B}) missing from font(s) DejaVu Sans. self.chart_canvas.draw() E:\pycharm\study\object\GUI.py:528: UserWarning: Glyph 27010 (\N{CJK UNIFIED IDEOGRAPH-6982}) missing from font(s) DejaVu Sans. self.chart_canvas.draw() E:\pycharm\study\object\GUI.py:528: UserWarning: Glyph 29575 (\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) DejaVu Sans. self.chart_canvas.draw() E:\pycharm\study\object\GUI.py:528: UserWarning: Glyph 20998 (\N{CJK UNIFIED IDEOGRAPH-5206}) missing from font(s) DejaVu Sans. self.chart_canvas.draw() E:\pycharm\study\object\GUI.py:528: UserWarning: Glyph 24067 (\N{CJK UNIFIED IDEOGRAPH-5E03}) missing from font(s) DejaVu Sans. self.chart_canvas.draw()
最新发布
06-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值