Swift-二叉樹的鏡像

題目:請完成一個函數(shù),輸入一個二叉樹,該函數(shù)輸出它的鏡像.
代碼:

    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()
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容