LintCode 69. Hierarchical Traversal of Binary Trees

Given a binary tree, return the level traversal of its node values ​​(visited from left to right layer by layer)

/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left, right;
 *     public TreeNode(int val) {
 *         this.val = val;
 *         this.left = this.right = null;
 *     }
 * }
 */
public class Solution {
   /**
    * @param root: A Tree
    * @return: Level order a list of lists of integer
    */
public List<List<Integer>> levelOrder(TreeNode root) {
      // write your code here
List<List<Integer>> list = new 
         ArrayList<>();
      LinkedList<TreeNode> queue = new LinkedList<>();
      if (root != null) {
         queue.offer(root);
      }
      while (!queue.isEmpty()) {
         int len = queue.size();
         List<Integer> tmplist = new ArrayList<>();
         while (len > 0) {
            TreeNode treeNode = queue.poll();
            tmplist.add(treeNode.val);
            if (treeNode.left != null) {
               queue.offer(treeNode.left);
            }
            if (treeNode.right != null) {
               queue.offer(treeNode.right);
            }
            len-- ;
         }
         list.add(tmplist);
      }
      return list;
   }
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324482615&siteId=291194637