牛客网——二叉树的镜像(C++、python)

题目描述

操作给定的二叉树,将其变换为源二叉树的镜像。

输入描述:

二叉树的镜像定义:源二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	镜像二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5

C++

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
public:
    void Mirror(TreeNode *pRoot) 
    {
        if(pRoot)
        {
            TreeNode* p=pRoot->left;
            TreeNode* q=pRoot->right;
            pRoot->left=q;
            pRoot->right=p;
            Mirror(pRoot->left);
            Mirror(pRoot->right);
        }
    }
};

python

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    # 返回镜像树的根节点
    def Mirror(self, root):
        # write code here
        if root:
            root.left,root.right=root.right,root.left
            self.Mirror(root.left)
            self.Mirror(root.right)

 

你可能感兴趣的:(牛客网剑指offer,二叉树)