按層列印二叉樹 每行列印一層

2022-03-18 02:48:24 字數 348 閱讀 2976

一,問題介紹

給定一棵二叉樹,按照層序遍歷的順序列印二叉樹。但是要求,每一行列印一層資料。

二,演算法分析

借助二叉樹的層序遍歷來實現(使用佇列的先入先出性質保證列印的順序)。

二叉樹層序遍歷參考:

層序列印參考:

1

public

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 另一種則是利用佇列的非遞迴解法 如果只是簡單的按層遍歷的話,可以用乙...