剑指Offer 27. 二叉树的镜像

发布时间 2023-08-27 17:22:36作者: 小星code

题目链接: 剑指Offer 27. 二叉树的镜像

题目描述:

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

解法思路:

此题本质上就是一个二叉树遍历的问题:在遍历的过程中,交换左右子树即可。

代码:

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
//先序遍历
func mirrorTree(root *TreeNode) *TreeNode {
    if root == nil {
        return root
    }
    root.Left, root.Right = root.Right, root.Left
    mirrorTree(root.Left)
    mirrorTree(root.Right)
    return root
}

//后序遍历
func mirrorTree(root *TreeNode) *TreeNode {
if root == nil {
return root
}
l := mirrorTree(root.Left)
r := mirrorTree(root.Right)
root.Left, root.Right = r, l
return root
}