zoukankan      html  css  js  c++  java
  • Java [Leetcode 107]Binary Tree Level Order Traversal II

    题目描述:

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

    For example:
    Given binary tree {3,9,20,#,#,15,7},

        3
       / 
      9  20
        /  
       15   7
    

    return its bottom-up level order traversal as:

    [
      [15,7],
      [9,20],
      [3]
    ]

    解题思路:

    运用广度优先搜索方法,运用队列的方法,每次遍历一层的叶节点,并把下一层的叶节点加入到队列中。每次遍历一层节点结束时候,将该层节点组成的list放到整体的list之前,实现由底到高的排列。

    代码如下:

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public List<List<Integer>> levelOrderBottom(TreeNode root) {
        	List<List<Integer>> list = new LinkedList<List<Integer>>();
        	Queue<TreeNode> queue = new LinkedList<TreeNode>();
        	if(root == null)
        		return list;
        	queue.offer(root);
        	while(!queue.isEmpty()){
        		int num = queue.size();
        		List<Integer> levelList = new LinkedList<Integer>();
        		for(int i = 0; i < num; i++){
        			if(queue.peek().left != null)
        				queue.offer(queue.peek().left);
        			if(queue.peek().right != null)
        				queue.offer(queue.peek().right);
        			levelList.add(queue.poll().val);
        		}
        		list.add(0, levelList);
        	}
        	return list;
        }
    }
    

      

  • 相关阅读:
    angular2中*ngFor同时适用*ngIf
    win10 正确安装node-sass方式
    ios10禁止用户缩放
    ubuntu切换全屏
    编译scss文件夹
    清除select中的三角形(下拉)
    js中的!!
    scss封装css3兼容性
    js获取当前时间
    Sql Server 数据分页
  • 原文地址:https://www.cnblogs.com/zihaowang/p/5149745.html
Copyright © 2011-2022 走看看