實現二叉樹的層序遍歷,我們藉助隊列來實現,這個是用Java代碼實現的,可以通過:
Queue queue = new LinkedList<>();//定義隊列
直接來創建一個隊列;
隊列中的方法:
我是通過迭代的方法實現:先得到一個根節點;判斷是否爲null;
不爲空的基礎上 ,將root添加到隊列中,然後進行迭代,
將隊列首元素刪除並返回,加入到list集合中,然後將root的左節點和右節點加入隊列(在不爲空的前提下),然後以此類推,就完成了二叉樹的層序遍歷。
public class Main {
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
//二叉樹 層序遍歷
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root){
ArrayList<Integer> ret = new ArrayList<>();
if (root==null) {
return ret;
}
Queue<TreeNode> queue = new LinkedList<>();//定義隊列
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
ret.add(node.val);
if (node.left != null) queue.add(node.left);
if (node.right != null) queue.add(node.right);
}
return ret;
}