【LeetCode笔记】102. 二叉树的层序遍历(Java、队列、DFS)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】102. 二叉树的层序遍历(Java、队列、DFS)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 代碼 & 思路
題目描述
- 按層次,那么先按序讀完本層值,并且存入隊列中,再根據隊列走下一層的值即可
代碼 & 思路
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/ class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> ans = new ArrayList<>();if(root != null) {LinkedList<TreeNode> queue = new LinkedList<>();queue.offer(root);findAns(ans, 1, queue);}return ans;}// 一次找一層void findAns(List<List<Integer>> ans, int nodeNums, LinkedList<TreeNode> queue){if(queue.size() == 0) {return;}int nowNum = 0;List<Integer> nowList = new ArrayList<>();for(int i = 0; i < nodeNums; i++) {TreeNode nowNode = queue.removeFirst();nowList.add(nowNode.val);// 處理左右子結點if(nowNode.left != null){queue.offer(nowNode.left);nowNum++;}if(nowNode.right != null){queue.offer(nowNode.right);nowNum++;}}ans.add(nowList);findAns(ans,nowNum,queue);} }總結
以上是生活随笔為你收集整理的【LeetCode笔记】102. 二叉树的层序遍历(Java、队列、DFS)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode笔记】剑指 Offer
- 下一篇: LeetCode笔记】剑指 Offer