方法一:
用两个数组进行迭代遍历
- class Solution {
- public List<List<Integer>> levelOrder(TreeNode root) {
- if(root == null) {
- return new ArrayList<List<Integer>>();
- }
- List<TreeNode> cur = new ArrayList<TreeNode>();
- cur.add(root);
- List<List<Integer>> ans = new ArrayList<List<Integer>>();
- while (!cur.isEmpty()) {
- List<TreeNode> nxt = new ArrayList<TreeNode>();
- List<Integer> vals = new ArrayList<Integer>();
- for(TreeNode node : cur) {
- vals.add(node.val);
- if (node.left != null) {
- nxt.add(node.left);
- }
- if (node.right != null) {
- nxt.add(node.right);
- }
- }
- cur = nxt;
- ans.add(vals);
- }
- return ans;
- }
- }
复制代码 方法二:
只用到了一个队列
- class Solution {
- public List<List<Integer>> levelOrder(TreeNode root) {
- if (root == null) {
- return new ArrayList<List<Integer>>();
- }
- Queue<TreeNode> q = new LinkedList<TreeNode>();
- List<List<Integer>> ans = new ArrayList<List<Integer>>();
- q.add(root);
- while (!q.isEmpty()) {
- int len = q.size();
- List<Integer> vals = new ArrayList<Integer>();
- while (len-- > 0) {
- TreeNode node = q.poll();
- if (node.left != null) {
- q.add(node.left);
- }
- if (node.right != null) {
- q.add(node.right);
- }
- vals.add(node.val);
- }
- ans.add(vals);
- }
- return ans;
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |