劍指offer----從上到下列印二叉樹----java實現
題目:從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
思路:其實就是二叉樹的層次遍歷問題,藉助於佇列來實現對二叉樹的層次遍歷
程式碼:
import java.util.ArrayList; import java.util.LinkedList; /*class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }*/ public class LevelTest { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> list = new ArrayList<Integer>(); if(root == null) return list; LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); TreeNode current = null; queue.offer(root); while(!queue.isEmpty()) { current = queue.poll();//出隊當前根節點 list.add(current.val);//將根節點元素的值新增到list中 if(current.left != null) queue.offer(current.left); if(current.right != null) queue.offer(current.right); } return list; } }
相關推薦
劍指offer-------之字列印二叉樹
題目: 思路: 程式碼: struct TreeNode { int val; TreeNode *left; TreeNode *right; } void Print(BinaryTreeNOde* pRoot) { if(pRoot ==
劍指offer----從上到下列印二叉樹----java實現
題目:從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 思路:其實就是二叉樹的層次遍歷問題,藉助於佇列來實現對二叉樹的層次遍歷 程式碼: import java.util.ArrayList;
《劍指offer》:[60]把二叉樹列印成多行
題目:從上到下安層列印二叉樹,同一層的結點按從左到右的順序列印,每一層列印一行。例如,圖(1)中二叉樹以及列印結果為: 這個題其實很簡單,我們只需要設定兩個變數就可以搞定。一個變量表示當前層中還沒有
《劍指Offer》之“把二叉樹列印成多行”
題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 程式碼實現 /* struct TreeNode { int val; struct TreeN
(C++)劍指offer-60:把二叉樹列印成多行(樹)
劍指offer-60:把二叉樹列印成多行 目錄 1題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 2解析及答案 層次遍歷 跟上一題一樣,將奇偶行去掉
劍指Offer面試題61:按之子型列印二叉樹 Java實現
/************************************************************** * Copyright (c) 2016, * All rights reserved. * 版 本 號:v1.0
劍指offer十八之二叉樹的鏡像
img ret code 如果 close http span coder view 一、題目 操作給定的二叉樹,將其變換為源二叉樹的鏡像。二叉樹的鏡像定義: 源二叉樹 : 8 / 6 10
【劍指offer】8、二叉樹中序遍歷的下一個節點
pan color col amp nullptr nbsp 父節點 public turn 題目 給定一個二叉樹和其中一個節點,找出中序遍歷的下一個節點。註意:樹的節點中除了有指向左右節點的指針,還有指向父節點的指針。 思路 (1)若該節點Node有右子樹,則下一個節點就
劍指offer(57)二叉樹的下一個節點
需要 div 2種 color 節點 兩種 我們 cti 指向 題目描述 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。註意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 題目分析 這題一定要畫圖,因為只有畫圖我們才能分清楚下一個節
劍指offer(4):重建二叉樹
turn return null ptr 不存在 n) 地址 iterator eno 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,
【劍指Offer】16重建二叉樹
題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。 時間限制:1秒;空間限制:32768K
劍指 Offer - 4:重建二叉樹
題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列 {1,2,4,7,3,5,6,8} 和中序遍歷序列 {4,7,2,1,5,3,8,6},則重建二叉樹並返回 題目連結:http
劍指offer 58. 對稱的二叉樹
題目描述 請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。 思路: 二叉樹映象相同是對稱的,利用遞迴做。 參考答案: # -*- coding:utf-8 -*- # class TreeNode: #
劍指offer——(14)二叉樹的映象(交換二叉樹)
/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.va
劍指offer-04:重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。 public class Solution04 {
劍指offer:對稱的二叉樹(java)
/** * 題目: * 請實現一個函式,用來判斷一顆二叉樹是不是對稱的。 * 注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。 * */ public class P159_IsSymmerical { boolean
劍指offer演算法題001 -- [二叉樹的映象] by java
程式執行截圖: import java.util.HashMap; public class Algorithm1 { /* [二叉樹的映象] [題目] 操作給定
牛客網《劍指Offer》 程式設計 23. 二叉樹的後序遍歷序列
題目描述 輸入一個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的陣列的任意兩個數字都互不相同。 解題思路 二叉搜尋樹的特點:後序遍歷的時候最後一個數是根節點。前面的數分為兩個部分,本別是左子樹部分和右子樹部分。左子樹
劍指offer-39:平衡二叉樹
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 思路 首先,什麼是平衡二叉樹?如果二叉樹中任意結點的左右子樹深度相差不超過1,那麼它就是平衡二叉樹。 最直接的做法,遍歷每個結點,藉助一個獲取樹深度的遞迴函式,根據該結點的左右子樹高度差判斷是否平衡,然後遞迴地對左右子樹進
【劍指offer】對稱的二叉樹【python】
請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。 class TreeNode: def __init__(self, x):