面试题27:二叉树的镜像

NowCoder

<?php
header("content-type:text/html;charset=utf-8");
/*
 * 操作给定的二叉树,将其变换为源二叉树的镜像。 P157
 */
class TreeNode{
    var $val;
    var $left = NULL;
    var $right = NULL;
    function __construct($val){
        $this->val = $val;
    }
}
function Mirror(&$root)
{
    if($root == null){
        return null;
    }
    if($root->left == null && $root->right == null){
        return ;
    }
    $tempNode = $root->left;
    $root->left = $root->right;
    $root->right = $tempNode;
    Mirror($root->left);
    Mirror($root->right);

}

原文地址:https://www.cnblogs.com/xlzfdddd/p/10198334.html

时间: 2024-09-05 09:05:38

面试题27:二叉树的镜像的相关文章

【剑指Offer】面试题27. 二叉树的镜像

题目 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: ? ? ?4 ? ?/ ? ? 2 ? ? 7 ?/ \ ? / 1 ? 3 6 ? 9 镜像输出: ? ? ?4 ? ?/ ? ? 7 ? ? 2 ?/ \ ? / 9 ? 6 3? ?1 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 限制: 0 <= 节点个数 <= 1000 本题同[LeetCode]226. 翻转二叉树 思路一:递归 自底向上. 代码 时间复杂

【剑指offer】【树】27.二叉树的镜像

二叉树的镜像 递归法 递归的先序遍历二叉树,交换每个节点的左右子节点,即可生成二叉树的镜像 /** * 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: TreeNod

《剑指offer》第二十七题(二叉树的镜像)

// 面试题27:二叉树的镜像 // 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像. #include <iostream> #include "BinaryTree.h" #include <stack> void MirrorRecursively(BinaryTreeNode *pNode)//递归算法(自下而上) { if ((pNode == nullptr) || (pNode->m_pLeft == nullptr &&a

剑指Offer对答如流系列 - 二叉树的镜像

面试题27:二叉树的镜像 题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 树的结构如下: public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } B是A的镜像 问题分析 镜像 这个名词看起来很高大上. 其实就是每个结点交换左右子结点. 我们通过前序遍历,依次处理即可. 问题解答 p

二叉树生成镜像

1 #include <stdio.h> 2 #include <iostream> 3 #include <set> 4 #include <unordered_set> 5 #include <map> 6 #include <queue> 7 #include <vector> 8 #include <string> 9 #include <stack> 10 11 using std::co

剑指OFFER之二叉树的镜像(九度OJ1521)

题目描述: 输入一个二叉树,输出其镜像. 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000,n代表将要输入的二叉树节点的个数(节点从1开始编号).接下来一行有n个数字,代表第i个二叉树节点的元素的值.接下来有n行,每行有一个字母Ci.Ci='d'表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号.Ci='l'表示第i个节点有一个左孩子,紧接着是左孩子的编号.Ci='r'表示第i个节点有一个右孩子,紧接着是右孩子的编号.C

【二叉树】二叉树的镜像

操作给定的二叉树,将其变换为源二叉树的镜像. 1 /** 2 public class TreeNode { 3 int val = 0; 4 TreeNode left = null; 5 TreeNode right = null; 6 7 public TreeNode(int val) { 8 this.val = val; 9 10 } 11 12 } 13 */ 14 public class Solution { 15 16 // 后序遍历的一个变型:递归地交换孩子节点的左右孩子,

九度oj题目1521:二叉树的镜像

题目1521:二叉树的镜像 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:2061 解决:560 题目描述: 输入一个二叉树,输出其镜像. 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000,n代表将要输入的二叉树节点的个数(节点从1开始编号).接下来一行有n个数字,代表第i个二叉树节点的元素的值.接下来有n行,每行有一个字母Ci.Ci=’d’表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号.Ci=’l’表

刷题18 二叉树的镜像

描述:  操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树的镜像示例: 源二叉树 8 / 6 10 / \ / 5 7 9 11 镜像二叉树 8 / 10 6 / \ / 11 9 7 5 很容易的想到了递归: 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) {