LeetCode-Binary Tree Level Order Traversal

it2022-05-07  7

基本思路就是通过使用对列(FIFO)来实现二叉树的层序遍历

ArrayList<Integer> list = new ArrayList<>(); ArrayList<ArrayList<Integer>> res = new ArrayList<>(); if(root==null) return res; ArrayDeque<TreeNode> queue = new ArrayDeque<>(); queue.add(root); while(!queue.isEmpty()){ int size = queue.size(); list = new ArrayList<>(); while(size-->0){ TreeNode temp = queue.pop(); list.add(temp.val); if(temp.left!=null){ queue.offer(temp.left); } if(temp.right!=null){ queue.offer(temp.right); } } res.add(list); } return res;

另一道题是倒序输出层序遍历的结果,可以使用ArrayList.add(index,e)的方法,效果是把e插入到Index的位置,其他顺序后移。

ArrayList<Integer> list = new ArrayList<>(); ArrayList<ArrayList<Integer>> res = new ArrayList<>(); if(root==null) return res; ArrayDeque<TreeNode> queue = new ArrayDeque<>(); queue.add(root); while(!queue.isEmpty()){ int size = queue.size(); list = new ArrayList<>(); while(size-->0){ TreeNode temp = queue.pop(); list.add(temp.val); if(temp.left!=null){ queue.offer(temp.left); } if(temp.right!=null){ queue.offer(temp.right); } } res.add(0,list); } return res;

啊~又水了一篇博客~

转载于:https://www.cnblogs.com/BBchao/p/8634241.html


最新回复(0)