溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java怎么實(shí)現(xiàn)從上往下打印二叉樹

發(fā)布時(shí)間:2021-12-13 14:58:01 來源:億速云 閱讀:189 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“java怎么實(shí)現(xiàn)從上往下打印二叉樹”,在日常操作中,相信很多人在java怎么實(shí)現(xiàn)從上往下打印二叉樹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java怎么實(shí)現(xiàn)從上往下打印二叉樹”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

前言

從上往下打印二叉樹,這里會(huì)用到隊(duì)列,所以先講一下Java隊(duì)列。

隊(duì)列

創(chuàng)建隊(duì)列

Queue<String> queue = new LinkedList<String>();

添加元素

 queue.offer("a");

出隊(duì)列

//返回第一個(gè)元素,并在隊(duì)列中刪除
queue.poll()

//返回隊(duì)列頭部的元素,如果隊(duì)列為空,則拋出一個(gè)NoSuchElementException異常
queue.element()

//返回隊(duì)列頭部的元素, 如果隊(duì)列為空,則返回null
queue.peek()

主要可能就用到這幾個(gè)方法啦。下面來看題目

題目

從上往下打印出二叉樹的每個(gè)節(jié)點(diǎn),同層節(jié)點(diǎn)從左至右打印。

分析

打印一顆二叉樹,如果直接遍歷打印的話,會(huì)先打印根節(jié)點(diǎn)->左節(jié)點(diǎn)->右節(jié)點(diǎn)。想要按層次打印,可以依照隊(duì)列來實(shí)現(xiàn),從根節(jié)點(diǎn)依次將節(jié)點(diǎn)加入隊(duì)列中,然后從隊(duì)列中取出來達(dá)到層次打印的目的。

解法

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怎么實(shí)現(xiàn)從上往下打印二叉樹java怎么實(shí)現(xiàn)從上往下打印二叉樹

到此,關(guān)于“java怎么實(shí)現(xiàn)從上往下打印二叉樹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI