1. 程式人生 > >LeetCode 102 Binary Tree Level Order Traversal(二叉樹的層次遍歷)

LeetCode 102 Binary Tree Level Order Traversal(二叉樹的層次遍歷)

一,問題描述:
1,給定一棵二叉樹,返回它的層次遍歷。
2,例如:
這裡寫圖片描述

3,解題思路:
使用LinkedList queue=new LinkedList()。因為LinkedList具有佇列的性質,即先進先出規則。然後統計每一層的節點個數,然後在每層從左到右輸出節點。

二,AC了的程式(使用Java實現的)

import java.util.*;
class TreeNode{   //節點的構造
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int x)
    {
        val=x;
    }
}

public
class Test2{ List<List<Integer>> list=new ArrayList<List<Integer>>(); public List<List<Integer>> levelOrder(TreeNode root) { if(root==null) { return list; } LinkedList<TreeNode> queue=new LinkedList<TreeNode>(); //定義一個LinkedList集合,其型別是TreeNode
queue.offer(root); //首先把根進入佇列中 while(!queue.isEmpty()) //佇列不為空的 { int num=queue.size(); //佇列的長度; List<Integer> templist=new ArrayList<Integer>(); //定義一個ArrayList集合 while(num>0)//首先判斷num是否大於0先獲取每一層的結點個數。 { TreeNode node=queue.peek(); //檢視隊頭元素,但是不刪除隊頭的元素,佇列是先進先出的規則
if(node.left!=null) //該節點的左孩子不為空 { queue.offer(node.left); //將左孩子進入隊尾 } if(node.right!=null) //如果該節點的右孩子不為空 { queue.offer(node.right); //將右孩子進入隊尾。 } int data=queue.poll().val; //將節點從隊頭出隊// 。 templist.add(data); //將出的節點加入到tempList集中 num--; //然後每次減1. } list.add(templist); } return list; } public static void main(String []args) { Test2 test=new Test2(); Scanner scan=new Scanner(System.in); TreeNode root=new TreeNode(3); TreeNode p2=new TreeNode(9); TreeNode p3=new TreeNode(20); TreeNode p4=new TreeNode(15); TreeNode p5=new TreeNode(7); root.left=p2; root.right=p3; p3.left=p4; p3.right=p5; List<List<Integer>> list=test.levelOrder(root); Iterator<List<Integer>> it1=list.iterator(); while(it1.hasNext()) { List<Integer> list2=it1.next(); Iterator<Integer> it2=list2.iterator(); while(it2.hasNext()) { int data=it2.next(); System.out.print(data+" "); } System.out.println(); } } }

執行結果如下:
這裡寫圖片描述

相關推薦

LeetCode 102. Binary Tree Level Order Traversalet ()

原題 Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level). For example: Given bi

LeetCode:Binary Tree Level Order Traversal層次

=======題目描述======= 題目連結:https://leetcode.com/problems/binary-tree-level-order-traversal/ 題目內容: Binary Tree Level Order Traversal Given a binar

LeetCode 102.Binary Tree Level Order Traversal (層次)

題目描述: 給定一個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其層次遍歷結果:

LeetCode 102 Binary Tree Level Order Traversal(層次

一,問題描述: 1,給定一棵二叉樹,返回它的層次遍歷。 2,例如: 3,解題思路: 使用LinkedList queue=new LinkedList()。因為LinkedList具有佇列的性質,即先進先出規則。然後統計每一層的節點個數,然後

[leetcode]103. Binary Tree Zigzag Level Order Traversal來回

Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level

[LeetCode] Binary Tree Level Order Traversal 層序

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example:Given binary tree {3,9

[LeetCode] 102. Binary Tree Level Order Traversal Java

new add arr view question list amp brush urn 題目: Given a binary tree, return the level order traversal of its nodes‘ values. (ie, from l

[leetcode]102. Binary Tree Level Order Traversal

[leetcode]102. Binary Tree Level Order Traversal Analysis ummmmmm—— [每天刷題並不難0.0] Given a binary tree, return the level order trave

Leetcode 102. Binary Tree Level Order Traversal

文章作者:Tyan 部落格:noahsnail.com  |  CSDN  |  簡書 1. Description 2. Solution Version 1 /** * Definition

#Leetcode# 102. Binary Tree Level Order Traversal

https://leetcode.com/problems/binary-tree-level-order-traversal/   Given a binary tree, return the level order traversal of its nodes' val

leetcode 102 Binary Tree Level Order Traversal

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given b

19.3.4 [LeetCode 102] Binary Tree Level Order Traversal

level tco one 技術分享 () clas oot rsa example Given a binary tree, return the level order traversal of its nodes‘ values. (ie, from left to

[LeetCode] Binary Tree Vertical Order Traversal 的豎直

Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bottom, column by column). If two nodes are in the same

[LeetCode] N-ary Tree Level Order Traversal N層序

etc ive [1] left depth ima leetcode 層序遍歷 mage Given an n-ary tree, return the level order traversal of its nodes‘ values. (ie, from le

LeetCode102. Binary Tree Level Order Traversal層次

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given b

[leetcode-層次並統計每層節點數]--102. Binary Tree Level Order Traversal

Question 102. Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes’ values. (ie

LeetCode 103.Binary Tree Zigzag Level Order Traversal (的鋸齒形層次)

題目描述: 給定一個二叉樹,返回其節點值的鋸齒形層次遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。 例如: 給定二叉樹 [3,9,20,null,null,15,7],     3    / \   9  20     /  \  

LeetCode 107.Binary Tree Level Order Traversal II (層次 II)

題目描述: 給定一個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷) 例如: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7

[LeetCode] Binary Tree Zigzag Level Order Traversal 的之字形層序

Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alt

LeetCode102. Binary Tree Level Order Traversal

Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level). For example: