一,問題介紹
給定一棵二叉樹,按照層序遍歷的順序列印二叉樹。但是要求,每一行列印一層資料。
二,演算法分析
借助二叉樹的層序遍歷來實現(使用佇列的先入先出性質保證列印的順序)。
二叉樹層序遍歷參考:
層序列印參考:
1public
void printtree(binarynoderoot)
21if(currentnode.right != null)25
if(current ==0)30}
31 }
原文:
按層列印二叉樹
二叉樹是一種常見的資料結構,由n 你 0 個節點構成,每個節點最多有兩個子二叉樹。由二叉樹的定義可知,一棵二叉樹由三部分組成 根節點 左子樹和右子樹。二叉樹的遍歷方式有先序遍歷 中序遍歷和後序遍歷。先序遍歷 首先訪問根節點,然後訪問根節點左孩子,再訪問根節點的右孩子。中序遍歷 首先訪問根節點左孩子,...
按層列印二叉樹
從上到下按層列印二叉樹,同一層結點從左至右輸出,每一層輸出一行 思路 1 廣度遍歷,利用佇列思想 2 要有2個佇列,分別存放當前層的節點 和 下一層的節點 class node 節點類 def init self,val self.val val self.left none self.right ...
列印二叉樹某一層的節點
按層非遞迴遍歷二叉樹是一道常見的題目,程式設計之美上有乙個列印出二叉樹某一層的節點的問題,稍稍有意思。在程式設計之美上,提到了兩種解法 1 一種是遞迴解法 void translevel node root,int level 2 另一種則是利用佇列的非遞迴解法 如果只是簡單的按層遍歷的話,可以用乙...