Swift.二叉树的镜像

cubegao 2015-07-10 PM 417℃ 0条
题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。
import Foundation

class For19Solution {
    func mirrorTreeNode(_ root: TreeNode?) -> TreeNode? {
        
        if root == nil || (root?.left == nil && root?.right == nil) {
            return nil
        }
        
        let temp = root?.left
        root?.left = root?.right
        root?.right = temp
        
        if root?.left != nil {
            mirrorTreeNode(root?.left)
        }
        
        if root?.right != nil {
            mirrorTreeNode(root?.right)
        }
        
        return root
    }
}

算法思想:递归,利用栈结构。交换左右孩子,然后递归访问左右孩子。

github地址:https://github.com/cubegao/LeetCode

标签: 算法

非特殊说明,本博所有文章均为博主原创。

评论啦~