如何進行分層遍歷二叉樹問題,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
我們提供的服務有:網站設計、成都網站設計、微信公眾號開發(fā)、網站優(yōu)化、網站認證、阿爾山ssl等。為成百上千家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的阿爾山網站制作公司
初階:給一棵二叉樹,按照層次進行輸出,第一行輸出第一層的節(jié)點,第二行輸出第二層,如此類推。
進階:如果只給你O(h)的額外空間該怎么辦?(h為樹的高度)
答:
初階:采用寬度(廣度)優(yōu)先搜索算法BFS。用一個隊列存儲一層的節(jié)點,通過一層節(jié)點擴展出下一層節(jié)點。實現的時候有兩種方式:一種方式是隊列中同時存儲層數,發(fā)現層數不同了,就換行輸出;另一種方式是記錄每一層的頭尾,多套一層循環(huán)輸出每一層。時間復雜度O(n),空間復雜度O(n)
進階:采用迭代搜索。迭代搜索的意思是,設定一個層數限制x,利用深度優(yōu)先搜索的方式往下搜索,每次搜到x這一層就不再往下繼續(xù)遞歸了。通過逐漸放寬x來實現每一層的搜索,也就是x從1到h進行枚舉(h為樹的高度)。時間復雜度O(nh),空間復雜度O(h)。迭代搜索是常用的在空間不足的情況下替代寬度優(yōu)先搜索的方法。是一種用時間換取空間的方法。
關于如何進行分層遍歷二叉樹問題問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯行業(yè)資訊頻道了解更多相關知識。