Swift-二叉树的镜像

题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像.
代码:

    func mirrorTree(rootNode:inout TreeNode?) -> Void {
        if rootNode == nil || (rootNode?.leftChild == nil && rootNode?.rightChild != nil) {
            return
        }
        let tempNode:TreeNode = rootNode!
        
        swap(&tempNode.leftChild, &tempNode.rightChild)
        
        if rootNode?.leftChild != nil {
            mirrorTree(rootNode: &tempNode.leftChild)
        }
        
        if rootNode?.rightChild != nil {
            mirrorTree(rootNode: &tempNode.rightChild)
        }
    }

测试代码:

var util:TreeUtil = TreeUtil()
var rootStr:String = "124##5##36##7##"
var preRootNode:TreeNode?
util.rootList = rootStr
util.createTreeByPreOrder(root: &preRootNode)

var treeOrder:TreeOrder = TreeOrder()

var mirrorTree:MirrorTree = MirrorTree()
mirrorTree.mirrorTree(rootNode: &preRootNode)
print("镜像")
treeOrder.levelOrder(preRootNode)
print()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容