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

劍指 Offer 32 - III. 從上到下打印二叉樹(shù) III

這篇具有很好參考價(jià)值的文章主要介紹了劍指 Offer 32 - III. 從上到下打印二叉樹(shù) III。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

使用函數(shù)實(shí)現(xiàn)

使用雙端隊(duì)列實(shí)現(xiàn)


請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù)按照之字形順序打印二叉樹(shù),即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,第三行再按照從左到右的順序打印,其他行以此類(lèi)推。

例如:
給定二叉樹(shù):?[3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回其層次遍歷結(jié)果:

[
  [3],
  [20,9],
  [15,7]
]

提示:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-677650.html

  1. 節(jié)點(diǎn)總數(shù) <= 1000

使用函數(shù)實(shí)現(xiàn)

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    List<List<Integer>> res=new ArrayList<>();
    public List<List<Integer>> levelOrder(TreeNode root) {
        helper(root,0);
        return res;
    }

    private void helper(TreeNode root,int level){
        if(root==null)
            return;
        if(res.size()==level){
            res.add(new ArrayList<>());
        }
        if(level%2==0){
            res.get(level).add(root.val);

        }else{
            res.get(level).add(0,root.val);
        }
        helper(root.left,level+1);
        helper(root.right,level+1);
    }
}

使用雙端隊(duì)列實(shí)現(xiàn)

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        boolean isEven = false;//從1開(kāi)始,第一行不是偶數(shù)
        if(root==null) return new ArrayList<>();
        List<List<Integer>>  ans = new ArrayList<>();
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        while(true){
            int size = queue.size();
            LinkedList<Integer> item = new LinkedList<>();
            for(int i=0;i<size;i++){
                root = queue.poll();
                if(!isEven) item.addLast(root.val);
                else item.addFirst(root.val);
                
                if(root.left!=null) queue.offer(root.left);
                if(root.right!=null) queue.offer(root.right);
            }
            isEven = !isEven;
            ans.add(item);
            if(queue.isEmpty()) break;
        }
        return ans;
    }
}

到了這里,關(guān)于劍指 Offer 32 - III. 從上到下打印二叉樹(shù) III的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Leetcode-每日一題【劍指 Offer 32 - II. 從上到下打印二叉樹(shù) II】

    Leetcode-每日一題【劍指 Offer 32 - II. 從上到下打印二叉樹(shù) II】

    從上到下按層打印二叉樹(shù),同一層的節(jié)點(diǎn)按從左到右的順序打印,每一層打印到一行。 例如: 給定二叉樹(shù):? [3,9,20,null,null,15,7] , ??? 3 ?? / ? 9? 20 ??? /? ?? 15?? 7 返回其層次遍歷結(jié)果: [ ? [3], ? [9,20], ? [15,7] ] 提示: 節(jié)點(diǎn)總數(shù) = 1000 1.題目要求我們從上到下按層打印二

    2024年02月12日
    瀏覽(15)
  • LeetCode——從上到下打印二叉樹(shù) II

    LeetCode——從上到下打印二叉樹(shù) II

    題目來(lái)源 劍指 Offer 32 - II. 從上到下打印二叉樹(shù) II - 力扣(LeetCode) 題目 從上到下按層打印二叉樹(shù),同一層的節(jié)點(diǎn)按從左到右的順序打印,每一層打印到一行。 示例 給定二叉樹(shù):[3,9,20,null,null,15,7] 返回其層次遍歷結(jié)果: ?解析: 該題是二叉樹(shù)層次遍歷的另一種形式,要想做

    2024年02月11日
    瀏覽(20)
  • JZ32 從上往下打印二叉樹(shù)(Java)

    JZ32 從上往下打印二叉樹(shù)(Java)

    題目地址:從上往下打印二叉樹(shù)_??皖}霸_牛客網(wǎng) 題目回顧: 不分行從上往下打印出二叉樹(shù)的每個(gè)節(jié)點(diǎn),同層節(jié)點(diǎn)從左至右打印。例如輸入{8,6,10,#,#,2,1},如以下圖中的示例二叉樹(shù),則依次打印8,6,10,2,1(空節(jié)點(diǎn)不打印,跳過(guò)),請(qǐng)你將打印的結(jié)果存放到一個(gè)數(shù)組里面,返回。 解

    2024年02月13日
    瀏覽(19)
  • KWin、libdrm、DRM從上到下全過(guò)程 —— drmModeAddFBxxx(13)

    接前一篇文章:KWin、libdrm、DRM從上到下全過(guò)程 —— drmModeAddFBxxx(12) 上一回補(bǔ)講了drivers/gpu/drm/drm_framebuffer.c中的framebuffer_check函數(shù)中for (i = 0; i info-num_planes; i++)中的第4個(gè)賦值語(yǔ)句,本回繼續(xù)接著KWin、libdrm、DRM從上到下全過(guò)程 —— drmModeAddFBxxx(11)中的工作,在前兩個(gè)參數(shù)檢

    2024年02月06日
    瀏覽(16)
  • 【ArcGIS Pro二次開(kāi)發(fā)】(46):要素類(lèi)從上到下、從左到右排序

    【ArcGIS Pro二次開(kāi)發(fā)】(46):要素類(lèi)從上到下、從左到右排序

    要素類(lèi)經(jīng)過(guò)編輯之后,【OBJECTID】字段會(huì)變得不規(guī)律。應(yīng)部分網(wǎng)友要求,做了這個(gè)從上到下、從左到右排序的工具。 不過(guò)后來(lái)在ArcGIS Pro中發(fā)現(xiàn)了一個(gè)【排序】工具,已經(jīng)可以完美實(shí)現(xiàn)這個(gè)功能需求,發(fā)現(xiàn)自己做了個(gè)白工。 ? 不過(guò)做了不能白做,而且和【排序】工具相比還是

    2024年02月17日
    瀏覽(16)
  • 劍指offer27.二叉樹(shù)的鏡像

    劍指offer27.二叉樹(shù)的鏡像

    這道題很簡(jiǎn)單,寫(xiě)了十多分鐘就寫(xiě)出來(lái)了,一看題目就知道這道題肯定要用遞歸。先交換左孩子和右孩子,再用遞歸交換左孩子的左孩子和右孩子,交換右孩子的左孩子和右孩子,其中做一下空判斷就行。以下是我的代碼: 看了一下題解大多數(shù)用的遞歸,還有用輔助棧的。

    2024年02月12日
    瀏覽(22)
  • 劍指offer面試題6 重建二叉樹(shù)

    分析 本題目輸入的一個(gè)樹(shù)的前序和中序遍歷序列,要求把這顆樹(shù)重建起來(lái)。這里需要了解到程序中有個(gè)特別重要的思維叫遞歸,遞歸是分層的,每一層的問(wèn)題都是一樣的,只不過(guò)問(wèn)題的規(guī)模不一樣,面對(duì)這類(lèi)復(fù)雜問(wèn)題你的思考方式一定是2點(diǎn):1.問(wèn)題該如何定義?第n層該如何

    2024年01月18日
    瀏覽(36)
  • 劍指offer:關(guān)于二叉樹(shù)的匯總(c++)

    劍指offer:關(guān)于二叉樹(shù)的匯總(c++)

    1、重建二叉樹(shù): 輸入某二叉樹(shù)的前序遍歷和中序遍歷的結(jié)果,請(qǐng)重建出該二叉樹(shù)。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重復(fù)的數(shù)字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹(shù)并返回。 2、樹(shù)的子結(jié)構(gòu): 輸入兩棵二叉樹(shù)A和B,

    2023年04月12日
    瀏覽(19)
  • Leetcode-每日一題【劍指 Offer 27. 二叉樹(shù)的鏡像】

    Leetcode-每日一題【劍指 Offer 27. 二叉樹(shù)的鏡像】

    請(qǐng)完成一個(gè)函數(shù),輸入一個(gè)二叉樹(shù),該函數(shù)輸出它的鏡像。 例如輸入: ? ? ?4 ? ?/ ? ? 2 ? ? 7 ?/ ? / 1 ? 3 6 ? 9 鏡像輸出: ? ? ?4 ? ?/ ? ? 7 ? ? 2 ?/ ? / 9 ? 6 3? ?1 示例 1: 輸入: root = [4,2,7,1,3,6,9] 輸出: [4,7,2,9,6,3,1] 限制: 0 = 節(jié)點(diǎn)個(gè)數(shù) = 1000 1.題目要求我們?cè)O(shè)

    2024年02月13日
    瀏覽(30)
  • (樹(shù)) 劍指 Offer 27. 二叉樹(shù)的鏡像 ——【Leetcode每日一題】

    (樹(shù)) 劍指 Offer 27. 二叉樹(shù)的鏡像 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 請(qǐng)完成一個(gè)函數(shù),輸入一個(gè)二叉樹(shù),該函數(shù)輸出它的鏡像。 例如輸入: 鏡像輸出: 示例 1: 輸入:root = [4,2,7,1,3,6,9] 輸出:[4,7,2,9,6,3,1] 限制 : 0 = 節(jié)點(diǎn)個(gè)數(shù) = 1000 注意 :本題與 226. 翻轉(zhuǎn)二叉樹(shù) 相同。 ??思路:遞歸 我們從根節(jié)點(diǎn)開(kāi)始,遞歸地對(duì)樹(shù)進(jìn)行遍歷: 如果

    2024年02月13日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包