zoukankan      html  css  js  c++  java
  • [GeeksForGeeks] Print leftmost and rightmost nodes at each level of a binary tree.

    Given a Binary Tree, Print the corner nodes at each level. The node at the leftmost and the node at the rightmost.

    For example, output for following is 15, 10, 20, 8, 25.

    Solution. Level Order Traversal using queue.

    Core idea:  Level order traversal always visit nodes of one level from left to right. 

    And we know the number of nodes at each level by pre-reading the size of the queue. 

     1 import java.util.ArrayList;
     2 import java.util.LinkedList;
     3 import java.util.Queue;
     4 
     5 class TreeNode {
     6     TreeNode left;
     7     TreeNode right;
     8     int val;
     9     TreeNode(int val){
    10         this.left = null;
    11         this.right = null;
    12         this.val = val;
    13     }
    14 }
    15 public class Solution {
    16     public ArrayList<TreeNode> getLeftRightMostAtEachLevel(TreeNode root) {
    17         ArrayList<TreeNode> result = new ArrayList<TreeNode>();
    18         if(root == null){
    19             return result;
    20         }
    21         Queue<TreeNode> queue = new LinkedList<TreeNode>();
    22         queue.offer(root);        
    23         while(!queue.isEmpty()){
    24             int size = queue.size();
    25             for(int i = 0; i < size; i++){
    26                 TreeNode curr = queue.poll();
    27                 if(i == 0){
    28                     result.add(curr);
    29                 }
    30                 if(i > 0 && i == size - 1){
    31                     result.add(curr);
    32                 }
    33                 if(curr.left != null){
    34                     queue.offer(curr.left);
    35                 }
    36                 if(curr.right != null){
    37                     queue.offer(curr.right);
    38                 }
    39             }
    40         }
    41         return result;
    42     }
    43 }
  • 相关阅读:
    C语言I博客作业11
    第十四周助教总结
    C语言I博客作业10
    Tensorflow--MNIST简单全连接层分类
    记一些好看的Android开源菜单
    AS更新到3.5.2遇到ERROR: SSL peer shut down incorrectly问题
    Tensorflow tf.app.flags 的使用
    Android Sensor(传感器)
    《第一行代码》百分比布局出现的问题
    当Turtle遇见柯南?
  • 原文地址:https://www.cnblogs.com/lz87/p/7277712.html
Copyright © 2011-2022 走看看