leetcode 102. 二叉树的层序遍历

打印 上一主题 下一主题

主题 982|帖子 982|积分 2946

方法一:
用两个数组进行迭代遍历
  1. class Solution {
  2.     public List<List<Integer>> levelOrder(TreeNode root) {
  3.         if(root == null) {
  4.             return new ArrayList<List<Integer>>();
  5.         }
  6.         List<TreeNode> cur = new ArrayList<TreeNode>();
  7.         cur.add(root);
  8.         List<List<Integer>> ans = new ArrayList<List<Integer>>();
  9.         while (!cur.isEmpty()) {
  10.             List<TreeNode> nxt = new ArrayList<TreeNode>();
  11.             List<Integer> vals = new ArrayList<Integer>();
  12.             for(TreeNode node : cur) {
  13.                 vals.add(node.val);
  14.                 if (node.left != null) {
  15.                     nxt.add(node.left);
  16.                 }
  17.                 if (node.right != null) {
  18.                     nxt.add(node.right);
  19.                 }
  20.             }
  21.             cur = nxt;
  22.             ans.add(vals);
  23.         }
  24.         return ans;
  25.     }
  26. }
复制代码
方法二:
只用到了一个队列
  1. class Solution {
  2.     public List<List<Integer>> levelOrder(TreeNode root) {
  3.         if (root == null) {
  4.             return new ArrayList<List<Integer>>();
  5.         }
  6.         Queue<TreeNode> q = new LinkedList<TreeNode>();
  7.         List<List<Integer>> ans = new ArrayList<List<Integer>>();
  8.         q.add(root);
  9.         while (!q.isEmpty()) {
  10.             int len = q.size();
  11.             List<Integer> vals = new ArrayList<Integer>();
  12.             while (len-- > 0) {
  13.                 TreeNode node = q.poll();
  14.                 if (node.left != null) {
  15.                     q.add(node.left);
  16.                 }
  17.                 if (node.right != null) {
  18.                     q.add(node.right);
  19.                 }
  20.                 vals.add(node.val);
  21.             }
  22.             ans.add(vals);
  23.         }
  24.         return ans;
  25.     }
  26. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表