二叉樹層次遍歷的三種列印方式

2021-09-05 11:58:00 字數 1757 閱讀 6190

/**

* @description: 層次遍歷的三種列印方式

* 1.從上到下遍歷

* 2.從下到上遍歷

* 3.從上到下zigzag遍歷

* @date: 2021/7/9 3:05

* @author: fuguowen

* @return

* @throws

*/public class solution014

treenode(int val)

treenode(int val, treenode left, treenode right)

}public static void main(string args)

}//使用雙端佇列實現二叉樹的層次遍歷

//定義變數size:記錄當前層的元素個數

//層次遍歷1:從上到下列印

public static list> levelorder(treenode root)

while (!queue.isempty())

if(poll.right!=null)

}//尾插法

list.add(levellist);

}return list;

}//層次遍歷2:從下到上遍歷

public static list> levelorderbottom(treenode root)

while (!queue.isempty())

if(poll.right!=null)

}//頭插法

list.add(0,levellist);

}return list;

}//層次遍歷3:zigzag列印

public static list> zigzaglevelorder(treenode root)

while (!queue.isempty())

if(poll.right!=null)

}if(list.size()%2==1)

//尾插法

list.add(levellist);

}return list;

}}

類似的題目:輸出二叉樹的右檢視

/**

* @description: 二叉樹的右檢視的列印

* 1

* 2 3

* 4 5 6 7

* @date: 2021/7/13 21:47

* @author: fuguowen

* @return

* @throws

*/public static void main(string args)

/*** @description: 二叉樹的右檢視

* @date: 2021/7/14 10:24

* @author: fuguowen

* @return

* @throws

*/public static listgettreerightview(treenode root)

queue.add(root);

while (!queue.isempty())

if (peek.right != null)

if(i==size-1)}}

return ans;

}//樹結構的定義

static class treenode

}

二叉樹三種遍歷方式

三種遍歷方式是按照根節點的訪問順序來定義的 1 前序遍歷 先訪問根結點 然後遍歷左子樹,最後遍歷右子樹 並且,在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。根左右 2 中序遍歷 先遍歷左子樹 然後訪問根結點,最後遍歷右子樹 並且,在遍歷左 右子樹時,仍然先遍歷左子樹,然後訪問...

重建二叉樹 遍歷二叉樹的三種方式

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。示例 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7限制 0 節點個數 5000 這個題的解法...

二叉樹的三種遍歷方式總結

最近學了二叉樹的三種遍歷方式,即前序遍歷,中序遍歷,後序遍歷三種,仔細思索後,在此簡單總結一下。一.二叉樹示意圖 假設有一顆二叉樹如下 二.遍歷分析 每一顆二叉樹由根節點,左子樹,右子樹三個部分組成,規定先遍歷左子樹,再遍歷右子樹,這樣一來就有了三種遍歷方式,按照遍歷根節點的先後順序來劃分,根 左 ...