Skip to content

Instantly share code, notes, and snippets.

@iwilbert
Created July 13, 2014 21:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iwilbert/656493ac191d0a3d6abe to your computer and use it in GitHub Desktop.
Save iwilbert/656493ac191d0a3d6abe to your computer and use it in GitHub Desktop.
public ArrayList<ArrayList<TreeNode>> TreeToList(TreeNode root) {
ArrayList<ArrayList<TreeNode>> lst = new ArrayList<ArrayList<TreeNode>>();
if (root == null)
return lst;
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.add(root);
queue.add(null);
ArrayList<TreeNode> level = new ArrayList<TreeNode>();
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
if (node != null) {
level.add(node);
if (node.left != null)
queue.add(node.left);
if (node.right != null)
queue.add(node.right);
} else {
lst.add(level);
level = new ArrayList<TreeNode>();
if (!queue.isEmpty())
queue.add(null);
}
}
return lst;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment