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

編程導(dǎo)航算法村第七關(guān) |二叉樹(shù)的遍歷

這篇具有很好參考價(jià)值的文章主要介紹了編程導(dǎo)航算法村第七關(guān) |二叉樹(shù)的遍歷。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

編程導(dǎo)航算法村第七關(guān) | 二叉樹(shù)的遍歷

前序遍歷(遞歸)

 public List<Integer> preorderTraversal(TreeNode root) {
        ArrayList<Integer> result = new ArrayList<Integer>();
        preorder(root, result);
        return result;
    }

    public void preorder(TreeNode root, List<Integer> result) {
        if (root == null) {
            return;
        }
        result.add(root.val);
        preorder(root.left, result);
        preorder(root.right, result);
    }

前序遍歷(迭代)

  • 先迭代到樹(shù)的最底層,左左端的元素,然后彈出棧,訪問(wèn)他的右節(jié)點(diǎn)
 public List<Integer> preorderTraversal(TreeNode root) {
        ArrayList<Integer> result = new ArrayList<Integer>();
        if (result == null) {
            return result;
        }

        Stack<TreeNode> stack = new Stack<TreeNode>();

        TreeNode node = root;
        while (!stack.isEmpty() || node != null) {
            while (node!= null) {
                result.add(node.val);
                stack.push(node);
                node = node.left;
            }
            node = stack.pop();
            node = node.right;
        }
        return result;
    }

中序遍歷(迭代)

 public List<Integer> inorderTraversal(TreeNode root) {
        ArrayList<Integer> result = new ArrayList<>();
        if (root == null) {
            return result;
        }
        Stack<TreeNode> stack = new Stack<TreeNode>();

        TreeNode node = root;
        while (!stack.isEmpty() || node != null) {
            while (node != null) {
                stack.push(node);
                node = node.left;
            }
            node = stack.pop();
            result.add(node.val);
            node = node.right;
        }
        return result;
    }

后續(xù)遍歷(反轉(zhuǎn)法)

  • 后續(xù)遍歷相當(dāng)于在前序遍歷的基礎(chǔ)上,先訪問(wèn)右節(jié)點(diǎn)再訪問(wèn)左節(jié)點(diǎn),最后翻轉(zhuǎn)
 public List<Integer> postorderTraversal(TreeNode root) {
        ArrayList<Integer> result = new ArrayList<>();
        if (root == null) {
            return result;
        }
        Stack<TreeNode> stack = new Stack<TreeNode>();

        TreeNode node = root;
        while (!stack.isEmpty() || node != null) {
            while (node != null) {
                stack.push(node);
                result.add(node.val);
                node = node.right;
            }
            node = stack.pop();
            node = node.left;
        }
        Collections.reverse(result);
        return result;
    }

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

到了這里,關(guān)于編程導(dǎo)航算法村第七關(guān) |二叉樹(shù)的遍歷的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • 二叉樹(shù)的編程與實(shí)現(xiàn)(C語(yǔ)言)

    二叉樹(shù)的編程與實(shí)現(xiàn)(C語(yǔ)言)

    一 、目的 : 掌握指針變量、動(dòng)態(tài)變量的含義; 掌握二叉樹(shù)的結(jié)構(gòu)特征,以及各種存儲(chǔ)結(jié)構(gòu)的特點(diǎn)及適用范圍; 掌握指針類型描述、訪問(wèn)和處理二叉樹(shù)的運(yùn)算; 二 、環(huán)境: operating system version:Win11 CPU instruction set:? x64 Integrated Development Environment:Viusal Studio 2022 三 、內(nèi)容:

    2024年02月05日
    瀏覽(16)
  • 【算法第十四天7.28】二叉樹(shù)的最大深度,二叉樹(shù)的最小深度 ,完全二叉樹(shù)的節(jié)點(diǎn)個(gè)數(shù)

    鏈接 力扣104-二叉樹(shù)的最大深度 思路 鏈接 力扣111-二叉樹(shù)的最小深度 思路 鏈接 力扣222-完全二叉樹(shù)的節(jié)點(diǎn)個(gè)數(shù) 思路

    2024年02月14日
    瀏覽(49)
  • LeetCode算法二叉樹(shù)—222. 完全二叉樹(shù)的節(jié)點(diǎn)個(gè)數(shù)

    LeetCode算法二叉樹(shù)—222. 完全二叉樹(shù)的節(jié)點(diǎn)個(gè)數(shù)

    目錄 222. 完全二叉樹(shù)的節(jié)點(diǎn)個(gè)數(shù) - 力扣(LeetCode) 代碼: 運(yùn)行結(jié)果:? 給你一棵 ?完全二叉樹(shù) ?的根節(jié)點(diǎn)? root ?,求出該樹(shù)的節(jié)點(diǎn)個(gè)數(shù)。 完全二叉樹(shù)?的定義如下:在完全二叉樹(shù)中,除了最底層節(jié)點(diǎn)可能沒(méi)填滿外,其余每層節(jié)點(diǎn)數(shù)都達(dá)到最大值,并且最下面一層的節(jié)點(diǎn)都集

    2024年02月07日
    瀏覽(30)
  • 數(shù)據(jù)結(jié)構(gòu)和算法學(xué)習(xí)記錄——平衡二叉樹(shù)(基本介紹、平衡因子、平衡二叉樹(shù)的定義、平衡二叉樹(shù)的高度)

    數(shù)據(jù)結(jié)構(gòu)和算法學(xué)習(xí)記錄——平衡二叉樹(shù)(基本介紹、平衡因子、平衡二叉樹(shù)的定義、平衡二叉樹(shù)的高度)

    目錄 基本介紹 平衡因子 平衡二叉樹(shù)? 平衡二叉樹(shù)的高度? 什么是平衡二叉樹(shù)? 以一個(gè)例子來(lái)解釋一下: 搜索樹(shù)結(jié)點(diǎn)按不同的插入次序,將會(huì)導(dǎo)致不同的深度和平均查找長(zhǎng)度ASL ? 在二叉搜索樹(shù)中查找一個(gè)元素:? (a)要找到Jan,需要查找一次;要找到Feb,需要查找兩次;

    2023年04月26日
    瀏覽(40)
  • 二叉樹(shù)的非遞歸遍歷算法

    二叉樹(shù)的非遞歸遍歷算法

    二叉樹(shù)的遍歷是指訪問(wèn)二叉樹(shù)的每個(gè)結(jié)點(diǎn),且每個(gè)結(jié)點(diǎn)僅被訪問(wèn)一次。二叉樹(shù)的遍歷可按二叉樹(shù)的構(gòu)成以及訪問(wèn)結(jié)點(diǎn)的順序分為4種方式:先序遍歷、中序遍歷、后序遍歷和層次遍歷。請(qǐng)至少給出其中一種遍歷方式的非遞歸算法的思路和代碼,并舉例演示算法的執(zhí)行過(guò)程。 算

    2023年04月24日
    瀏覽(20)
  • 算法刷題Day 15 二叉樹(shù)的層序遍歷+翻轉(zhuǎn)二叉樹(shù)+對(duì)稱二叉樹(shù)

    層序遍歷二叉樹(shù)需要借助到隊(duì)列 遞歸方法 迭代方法 就是簡(jiǎn)單的用上前序遍歷迭代方法實(shí)現(xiàn),不用想的太復(fù)雜 遞歸方法 迭代方法 這里使用了隊(duì)列來(lái)存放兩個(gè)要比較的結(jié)點(diǎn)。也可以使用棧,方法是類似的。

    2024年02月12日
    瀏覽(53)
  • 【算法題解】34. 二叉樹(shù)的最小深度

    【算法題解】34. 二叉樹(shù)的最小深度

    這是一道 簡(jiǎn)單 題 https://leetcode.cn/problems/minimum-depth-of-binary-tree/ 給定一個(gè)二叉樹(shù),找出其最小深度。 最小深度是從根節(jié)點(diǎn)到最近葉子節(jié)點(diǎn)的最短路徑上的節(jié)點(diǎn)數(shù)量。 說(shuō)明 :葉子節(jié)點(diǎn)是指沒(méi)有子節(jié)點(diǎn)的節(jié)點(diǎn)。 示例 1: 示例 2: 提示: 樹(shù)中節(jié)點(diǎn)數(shù)的范圍在 [ 0 , 1 0 5 ] [0, 10^5] [

    2024年02月08日
    瀏覽(29)
  • 數(shù)據(jù)結(jié)構(gòu)與算法-二叉樹(shù)的遍歷

    數(shù)據(jù)結(jié)構(gòu)與算法-二叉樹(shù)的遍歷

    ?? “少年沒(méi)有烏托邦,心向遠(yuǎn)方自明朗!” 二叉樹(shù)的遍歷是按照一定次序訪問(wèn)二叉樹(shù)中的所有結(jié)點(diǎn),且每個(gè)結(jié)點(diǎn)僅被訪問(wèn)一次的過(guò)程。遍歷線性結(jié)構(gòu)是容易解決的,而二叉樹(shù)的結(jié)構(gòu)是非線性結(jié)構(gòu),需要尋找規(guī)律,使二叉樹(shù)的結(jié)點(diǎn)排列在一個(gè)線性隊(duì)列上,便于遍歷。 由二叉樹(shù)

    2024年02月08日
    瀏覽(35)
  • 算法進(jìn)階——求二叉樹(shù)的層序遍歷

    算法進(jìn)階——求二叉樹(shù)的層序遍歷

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

    2024年01月24日
    瀏覽(31)
  • 算法刷題Day 17 平衡二叉樹(shù)+二叉樹(shù)的所有路徑+左葉子之和

    計(jì)算左右兩棵子樹(shù)的高度,如果有一個(gè)高度是-1(有一棵子樹(shù)不平衡),直接返回-1,否則計(jì)算高度差,判斷是否不平衡 使用 回溯 的方法,每次處理一個(gè)節(jié)點(diǎn)之前要把它push進(jìn)table里,處理完之后又要把它pop出來(lái) 處理一個(gè)節(jié)點(diǎn)時(shí),要判斷它是否是左節(jié)點(diǎn)(需要父節(jié)點(diǎn),可以通

    2024年02月15日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包