演算法之二叉樹分層遍歷

2021-09-02 11:42:25 字數 542 閱讀 1010

通過佇列實現二叉樹的分層遍歷,換行可以使用last和nlast兩個變數,每次新增新的最右節點記錄nlast,每次從佇列彈棧記錄乙個節點node,node==last換行,把nlast賦值給last,用二維陣列遍歷。

arraylist> res = new arraylist>();

arraylisttemp = new arraylist();

linkedlistqueue = new linkedlist();

queue.offer(root);

treenode node=null;

treenode last = root;

treenode nlast = last;

if(root == null)

return null;

while(!queue.isempty())

if(node.right!=null)

if(node == last)

}int result = new int[res.size()];

for(int i=0;i}

分層遍歷二叉樹

include include struct node struct node inittree for i 0 i 2 i tree 3 lchild tree 7 tree 5 rchild tree 8 return tree 0 int printnodeatlevel struct nod...

分層遍歷二叉樹

程式設計之美 3.10 p252 給定一棵二叉樹,壓球按分層遍歷該二叉樹,即從上到下按層次訪問該二叉樹 每一層將單獨輸出一行 每一層要求訪問的順序為從左到右,並將節點依次編號。分層輸出二叉樹。struct nodevoid printnodebylevel node root 輸出為 1 2 34 ...

演算法之二叉樹各種遍歷

樹形結構是一類重要的非線性資料結構,其中以樹和二叉樹最為常用。二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用作二叉查詢樹和二叉堆或是二叉排序樹。二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 ...