Swift-從上往下打印二叉樹

題目:從上往下打印出二叉樹的每個(gè)節(jié)點(diǎn),同層節(jié)點(diǎn)從左至右打印.

func levelOrderTree(rootNode:TreeNode?) -> [String]? {
    if rootNode == nil {
        return nil
    }
    
    var levelArr:[String] = []
    var data:[TreeNode] = [rootNode!]
    
    while data.count > 0 {
        let headNode:TreeNode = data[0] 
        data.remove(at: 0)
        levelArr.append(headNode.data!)
        
        if headNode.leftChild != nil {
            data.append(headNode.leftChild!)
        }
        
        if headNode.rightChild != nil {
            data.append(headNode.rightChild!)
        }
    }
    
    return levelArr
}

測試代碼:
<pre><code>`

var util:TreeUtil = TreeUtil()
var rootData:[String] = ["8","6","5","#","#","7","#","#","10","9","#","#","11","#","#"]
var preRootNode:TreeNode?
util.createTreeByPreOrderData(root: &preRootNode, listData: rootData)

var treeOrder:TreeOrder = TreeOrder()
var leveData:[String]? = treeOrder.levelOrderTree(rootNode: preRootNode)
print("FlyElephant:層級(jí)數(shù)組--(leveData!)")
print()`</code></pre>

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

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

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