通過佇列實現二叉樹的分層遍歷,換行可以使用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的結點 ...