【LeetCode】102.Binary Tree Level Order Traversal(Medium)解题报告
2018-03-14 18:00
507 查看
【LeetCode】102.Binary Tree Level Order Traversal(Medium)解题报告
题目地址:https://leetcode.com/problems/binary-tree-level-order-traversal/description/
题目描述:
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
Solution1:
Solution2:
Date:2018年3月14日
题目地址:https://leetcode.com/problems/binary-tree-level-order-traversal/description/
题目描述:
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example: Given binary tree [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 return its level order traversal as: [ [3], [9,20], [15,7] ]
Solution1:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } 二叉树的层序遍历,很经常出现的一个问题 第一种方法:queue time : O(n) space : O(n) */ class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<>(); if(root == null) return res; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while(!queue.isEmpty()){ int size = queue.size(); List<Integer> list = new ArrayList<>(); for(int i=0 ; i<size ;i++){ TreeNode cur = queue.poll(); if(cur.left!=null) queue.offer(cur.left); if(cur.right!=null) queue.offer(cur.right); list.add(cur.val); } res.add(list); } return res; } }
Solution2:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } 二叉树的层序遍历,很经常出现的一个问题 第二种方法:先序遍历求层序遍历 time : O(n) space : O(n) */ class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<>(); if(root == null) return res; helper(res,root,0); return res; } public static void helper(List<List<Integer>> res,TreeNode root , int level){ if(root == null) return; if(level >= res.size()){ res.add(new ArrayList<>()); } res.get(level).add(root.val); helper(res,root.left,level+1); helper(res,root.right,level+1); } }
Date:2018年3月14日
相关文章推荐
- 【LeetCode】75.Sort Colors(Medium)解题报告
- 【LeetCode】351.Android Unlock Patterns(Medium)解题报告
- 【LeetCode】60.Permutation Sequence(medium)解题报告
- LeetCode解题报告 392. Is Subsequence [medium]
- LeetCode解题报告 309. Best Time to Buy and Sell Stock with Cooldown[medium]
- 【LeetCode】94.Binary Tree Inorder Traversal(Medium)解题报告
- 【LeetCode】623.Add One Row to Tree(Medium)解题报告
- LeetCode解题报告 122. Best Time to Buy and Sell Stock II [medium]
- 【LeetCode】57.Insert Interval(Medium)解题报告
- 【LeetCode】275.H-Index II(Medium)解题报告
- 【LeetCode】280.Wiggle Sort (Medium)(带锁题)解题报告
- LeetCode解题报告 394. Decode String [medium]
- 【LeetCode】152.Maximum Product Subarray(Medium)解题报告
- 【LeetCode】334.Increasing Triplet Subsequence(Medium)解题报告
- 【LeetCode】406.Queue Reconstruction by Height(Medium)解题报告
- LeetCode解题报告 445. Add Two Numbers II [medium]
- 【LeetCode】117.Populating Next Right Pointers in Each Node II(Medium)解题报告
- 【LeetCode】244.Shortest Word Distance II(Medium)解题报告
- LeetCode解题报告 55. Jump Game [medium]
- 【LeetCode】648.Replace Words(Medium)解题报告