您好,登錄后才能下訂單哦!
這篇文章主要介紹“java怎么實現從上往下打印二叉樹”,在日常操作中,相信很多人在java怎么實現從上往下打印二叉樹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java怎么實現從上往下打印二叉樹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
從上往下打印二叉樹,這里會用到隊列,所以先講一下Java隊列。
創建隊列
Queue<String> queue = new LinkedList<String>();
添加元素
queue.offer("a");
出隊列
//返回第一個元素,并在隊列中刪除
queue.poll()
//返回隊列頭部的元素,如果隊列為空,則拋出一個NoSuchElementException異常
queue.element()
//返回隊列頭部的元素, 如果隊列為空,則返回null
queue.peek()
主要可能就用到這幾個方法啦。下面來看題目
從上往下打印出二叉樹的每個節點,同層節點從左至右打印。
打印一顆二叉樹,如果直接遍歷打印的話,會先打印根節點->左節點->右節點。想要按層次打印,可以依照隊列來實現,從根節點依次將節點加入隊列中,然后從隊列中取出來達到層次打印的目的。
ArrayList<Integer> list=new ArrayList<>();
if(root==null){
return list;
}
Queue<TreeNode> queue=new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()){
TreeNode temp=queue.poll();
list.add(temp.val);
if(temp.left!=null){
queue.offer(temp.left);
}
if(temp.right!=null){
queue.offer(temp.right);
}
}
return list;
main 方法
public static void main(String[] args) {
TreeNode root =new TreeNode(1);
root.left=new TreeNode(2);
root.right=new TreeNode(3);
root.left.left=new TreeNode(4);
root.right.left=new TreeNode(5);
root.left.left.left=new TreeNode(6);
TreeOperation.show(root);
Solution solution= new Solution();
ArrayList<Integer> list=solution.PrintFromTopToBottom(root);
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+"\t");
}
}
到此,關于“java怎么實現從上往下打印二叉樹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。