Swift-反轉(zhuǎn)二叉樹

題目: 反轉(zhuǎn)二叉樹其實就是二叉樹的鏡像.
4
/
2 7
/ \ /
1 3 6 9
to
4
/
7 2
/ \ /
9 6 3 1

核心代碼:
<pre><code>` func invertTree(rootNode:TreeNode?) {

    if rootNode == nil || (rootNode?.leftChild == nil && rootNode?.rightChild == nil) {
        return
    }
    
    let root:TreeNode = rootNode!
    
    swap(&root.leftChild, &root.rightChild)
    
    if root.leftChild != nil {
        invertTree(rootNode: root.leftChild)
    }
    
    if root.rightChild != nil {
        invertTree(rootNode: root.rightChild)
    }
    
}`</code></pre>

測試代碼:
<pre><code>`var invertNode:TreeNode?
var invertListData:[String] = ["4","2","1","#","#","3","#","#","7","6","#","#","9","#","#"]
tree.rootIndex = -1
tree.createTreeByPreOrder(root: &invertNode, listData: invertListData)

tree.treeLevelOrder(root: invertNode)
binaryTree.invertTree(rootNode: invertNode)
tree.treeLevelOrder(root: invertNode)
print("FlyElephant")`</code></pre>

FlyElephant.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 鏈表 鏈表是最基本的數(shù)據(jù)結(jié)構(gòu),面試官也常常用鏈表來考察面試者的基本能力,而且鏈表相關(guān)的操作相對而言比較簡單,...
    Mr希靈閱讀 5,759評論 1 17
  • 一直以來,我都很少使用也避免使用到樹和圖,總覺得它們神秘而又復(fù)雜,但是樹在一些運(yùn)算和查找中也不可避免的要使用到,那...
    24K男閱讀 6,857評論 5 14
  • 面試題7:重建二叉樹 題目: 輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果。請重建該二叉樹。假設(shè)輸入的前序遍歷和中序遍歷...
    lyoungzzz閱讀 634評論 0 0
  • 樹的概述 樹是一種非常常用的數(shù)據(jù)結(jié)構(gòu),樹與前面介紹的線性表,棧,隊列等線性結(jié)構(gòu)不同,樹是一種非線性結(jié)構(gòu) 1.樹的定...
    Jack921閱讀 4,759評論 1 31
  • 夢里的雨很重 你瘦弱的身影 撐著傘 穿過雨幕重重 夢里的雨來去都很急 你耳畔起舞 溫柔的風(fēng) 無法觸摸你的美麗 我多...
    何清soul閱讀 121評論 0 1

友情鏈接更多精彩內(nèi)容