剑指offer(Java实现) 从上往下打印二叉树
生活随笔
收集整理的這篇文章主要介紹了
剑指offer(Java实现) 从上往下打印二叉树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
從上往下打印出二叉樹的每個節點,同層節點從左至右打印。
解題思路
利用隊列(鏈表)輔助實現。
代碼實現
import java.util.ArrayList; import java.util.LinkedList;/** public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}} */ public class Solution {public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {ArrayList<Integer> resultList = new ArrayList<>();if (null == root) {return resultList;}LinkedList<TreeNode> queue = new LinkedList<>();queue.addLast(root);while (!queue.isEmpty()) {TreeNode node = queue.poll();resultList.add(node.val);if (null != node.left) {queue.addLast(node.left);}if (null != node.right) {queue.addLast(node.right);}}return resultList;} }注意
在 JAVA 中,我們常用 LinkedList 來模擬鏈式隊列,具體方法如下:
增加:
- add(E e):在鏈表后添加一個元素; 通用方法
- addFirst(E e):在鏈表頭部插入一個元素; 特有方法
- addLast(E e):在鏈表尾部添加一個元素; 特有方法
- push(E e):與addFirst方法一致
- offer(E e):在鏈表尾部插入一個元素
- add(int index, E element):在指定位置插入一個元素。
- offerFirst(E e):JDK1.6版本之后,在頭部添加; 特有方法 offerLast(E e):JDK1.6版本之后,在尾部添加; 特有方法
刪除:
- remove() :移除鏈表中第一個元素; 通用方法
- remove(E e):移除指定元素; 通用方法
- removeFirst(E e):刪除頭,獲取元素并刪除; 特有方法
- removeLast(E e):刪除尾; 特有方法
- pollFirst():刪除頭; 特有方法
- pollLast():刪除尾; 特有方法
- pop():和removeFirst方法一致,刪除頭。
- poll():查詢并移除第一個元素 特有方法
查:
- get(int index):按照下標獲取元素; 通用方法
- getFirst():獲取第一個元素; 特有方法
- getLast():獲取最后一個元素; 特有方法
- peek():獲取第一個元素,但是不移除; 特有方法
- peekFirst():獲取第一個元素,但是不移除;
- peekLast():獲取最后一個元素,但是不移除;
- pollFirst():查詢并刪除頭; 特有方法
- pollLast():刪除尾; 特有方法
- poll():查詢并移除第一個元素 特有方法
總結
以上是生活随笔為你收集整理的剑指offer(Java实现) 从上往下打印二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指Offer(Java实现)栈的压入、
- 下一篇: 剑指offer(Java实现) 二叉搜索