国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

每日一題 102二叉樹的層序遍歷

這篇具有很好參考價值的文章主要介紹了每日一題 102二叉樹的層序遍歷。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

題目

給你二叉樹的根節(jié)點 root ,返回其節(jié)點值的 層序遍歷 。 (即逐層地,從左到右訪問所有節(jié)點)。

示例 1:

輸入:root = [3,9,20,null,null,15,7]
輸出:[[3],[9,20],[15,7]]
示例 2:

輸入:root = [1]
輸出:[[1]]
示例 3:

輸入:root = []
輸出:[]

提示:

樹中節(jié)點數(shù)目在范圍 [0, 2000] 內(nèi)
-1000 <= Node.val <= 1000文章來源地址http://www.zghlxwxcb.cn/news/detail-707180.html

題解

兩個數(shù)組

/**
 * 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) {
        if (root == null) {
            return List.of();//建立一個空list
        }
        List<List<Integer>> ans = new ArrayList<>();
        List<TreeNode> cur = new ArrayList<>();
        cur.add(root);
        while (!cur.isEmpty()) {
            List<TreeNode> nxt = new ArrayList<>();
            List<Integer> vals = new ArrayList<>(cur.size());
            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;
    }
}

隊列

/**
 * 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) {
        if (root == null) {
            return List.of();
        }
        List<List<Integer>> ans = new ArrayList<>();
        Queue<TreeNode> q = new ArrayDeque<>();
        q.add(root);
        while (!q.isEmpty()) {
            int n = q.size();
            List<Integer> vals = new ArrayList<>(n);
            while (n-- > 0) {
                TreeNode node = q.poll();//刪除隊頭的元素
                vals.add(node.val);
                if (node.left != null) q.add(node.left);
                if (node.right != null) q.add(node.right);
            }
            ans.add(vals);
        }
        return ans;
    }
}

到了這里,關(guān)于每日一題 102二叉樹的層序遍歷的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【C++】102.二叉樹的層序遍歷

    【C++】102.二叉樹的層序遍歷

    給你二叉樹的根節(jié)點 root ,返回其節(jié)點值的 層序遍歷 。 (即逐層地,從左到右訪問所有節(jié)點)。 示例1: 示例 2: 示例 3: 提示: 樹中節(jié)點數(shù)目在范圍 [0, 2000] 內(nèi) -1000 = Node.val = 1000 這個問題實際上可以只用一個隊列就實現(xiàn),只需要再增加一個變量 levelSize ,用來記錄每一層

    2024年03月11日
    瀏覽(20)
  • 【LeetCode】102.二叉樹的層序遍歷

    【LeetCode】102.二叉樹的層序遍歷

    給你二叉樹的根節(jié)點? root ?,返回其節(jié)點值的? 層序遍歷 ?。 (即逐層地,從左到右訪問所有節(jié)點)。 示例 1: 示例 2: 示例 3: 提示: 樹中節(jié)點數(shù)目在范圍? [0, 2000] ?內(nèi) -1000 = Node.val = 1000 之前做的題里深度優(yōu)先遍歷(DFS)用得比較多,主要是回溯算法,這道題的層序遍

    2024年02月15日
    瀏覽(28)
  • 【LeetCode熱題100】--102.二叉樹的層序遍歷

    【LeetCode熱題100】--102.二叉樹的層序遍歷

    廣度優(yōu)先搜索: 我們可以想到最樸素的方法是用一個二元組 (node, level) 來表示狀態(tài),它表示某個節(jié)點和它所在的層數(shù),每個新進隊列的節(jié)點的 level 值都是父親節(jié)點的 level 值加一。最后根據(jù)每個點的 level 對點進行分類,分類的時候我們可以利用哈希表,維護一個以 level 為鍵

    2024年02月07日
    瀏覽(42)
  • 【Py/Java/C++三種語言詳解】LeetCode每日一題240216【二叉樹BFS】LeetCode103、二叉樹的層序遍歷II

    【Py/Java/C++三種語言詳解】LeetCode每日一題240216【二叉樹BFS】LeetCode103、二叉樹的層序遍歷II

    有LeetCode交流群/華為OD考試扣扣交流群可加: 948025485 可上全網(wǎng)獨家的 歐弟OJ系統(tǒng) 練習(xí)華子OD、大廠真題 綠色聊天軟件戳 od1336 了解算法沖刺訓(xùn)練 LeetCode103、二叉樹的鋸齒形層序遍歷 給你二叉樹的根節(jié)點 root ,返回其節(jié)點值的 鋸齒形層序遍歷 。(即先從左往右,再從右往左進

    2024年02月20日
    瀏覽(19)
  • 代碼隨想錄Day12 二叉樹 LeetCode T102二叉樹的層序遍歷 T226 翻轉(zhuǎn)二叉樹 T101 對稱二叉樹

    代碼隨想錄Day12 二叉樹 LeetCode T102二叉樹的層序遍歷 T226 翻轉(zhuǎn)二叉樹 T101 對稱二叉樹

    本文思路和詳細講解來自于:代碼隨想錄 (programmercarl.com) 題目鏈接:102. 二叉樹的層序遍歷 - 力扣(LeetCode) 本題使用隊列輔助完成,講解主要函數(shù)CheckOrder:首先判斷root是否為空,是就直接返回,然后創(chuàng)建隊列,向里加入root元素,計算隊列的長度,也就是每一層的元素個數(shù),while循環(huán),si

    2024年02月06日
    瀏覽(19)
  • 41 二叉樹的層序遍歷

    41 二叉樹的層序遍歷

    給你二叉樹的根節(jié)點 root ,返回其節(jié)點值的 層序遍歷 。 (即逐層地,從左到右訪問所有節(jié)點)。 提示: 樹中節(jié)點數(shù)目在范圍 [0, 2000] 內(nèi) -1000 = Node.val = 1000

    2024年02月07日
    瀏覽(23)
  • 二叉樹題目:二叉樹的層序遍歷 II

    二叉樹題目:二叉樹的層序遍歷 II

    標(biāo)題:二叉樹的層序遍歷 II 出處:107. 二叉樹的層序遍歷 II 4 級 要求 給你二叉樹的根結(jié)點 root texttt{root} root ,返回其結(jié)點值自底向上的層序遍歷(即從左到右,按從葉結(jié)點所在層到根結(jié)點所在層逐層遍歷)。 示例 示例 1: 輸入: root ? = ? [3,9,20,null,null,15,7] texttt{root = [3

    2024年02月11日
    瀏覽(23)
  • 算法進階——求二叉樹的層序遍歷

    算法進階——求二叉樹的層序遍歷

    題目 給定一個二叉樹,返回該二叉樹層序遍歷的結(jié)果,(從左到右,一層一層地遍歷)。 例如: 給定的二叉樹是{3,9,20,#,#,15,7}, 該二叉樹層序遍歷的結(jié)果是 [ [3], [9,20], [15,7] ] 提示: 0 = 二叉樹的結(jié)點數(shù) = 1500 示例1 示例2 思路 利用輔助隊列,通過bfs(廣度優(yōu)先)算法遍歷二叉樹

    2024年01月24日
    瀏覽(31)
  • day-20 二叉樹的層序遍歷

    day-20 二叉樹的層序遍歷

    思路:利用隊列進行廣度優(yōu)先遍歷即可 注意點:ArrayList執(zhí)行remove之后,索引i會立即重排,注意可能越界 code:

    2024年03月19日
    瀏覽(23)
  • 【數(shù)據(jù)結(jié)構(gòu)】二叉樹的層序遍歷

    【數(shù)據(jù)結(jié)構(gòu)】二叉樹的層序遍歷

    當(dāng)我們面對一個樹結(jié)構(gòu)時,常常需要對其進行遍歷以獲取其中的節(jié)點信息。其中一種常用的遍歷方式是層序遍歷,也稱為廣度優(yōu)先搜索(BFS)。本篇博客將詳細介紹層序遍歷的原理和實現(xiàn)方法。 層序遍歷以樹的根節(jié)點開始,按照從上到下、從左到右的順序逐層遍歷樹中的節(jié)點

    2024年02月03日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包