這篇文章給大家介紹利用java如何實(shí)現(xiàn)遍歷二叉樹,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、市中網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。遍歷二叉樹,從上往下遍歷。但是同層節(jié)點(diǎn)可以從左向右遍歷,也可以從右向左遍歷(也就是之字型遍歷),其中,都需要隊(duì)列進(jìn)行實(shí)現(xiàn)。只是按照之字型稍微麻煩一些。
(1)從上往下打印出二叉樹的每個(gè)節(jié)點(diǎn),同層節(jié)點(diǎn)從左至右打印。
需要一個(gè)隊(duì)列,隊(duì)列里面放節(jié)點(diǎn)(從根節(jié)點(diǎn)開始),然后依次進(jìn)行打印。
import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; class TreeNode{ int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val){ this.val = val; } } public class Solution { public ArrayListPrintFromTopToBottom(TreeNode root) { ArrayList list = new ArrayList (); if(root == null) return list; Queue queue = new LinkedList (); queue.add(root); while(!queue.isEmpty()){ TreeNode t = queue.poll(); list.add(t.val); if(t.left != null) queue.add(t.left); if(t.right != null) queue.add(t.right); } return list; } }