码迷,mamicode.com
首页 > Web开发 > 详细

[GeeksForGeeks] Print leftmost and rightmost nodes at each level of a binary tree.

时间:2017-08-03 12:29:51      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:and   each   sem   log   get   public   width   add   always   

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 }

 

[GeeksForGeeks] Print leftmost and rightmost nodes at each level of a binary tree.

标签:and   each   sem   log   get   public   width   add   always   

原文地址:http://www.cnblogs.com/lz87/p/7277712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!