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

【C語言題解】 | 144. 二叉樹的前序遍歷

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

144. 二叉樹的前序遍歷

【C語言題解】 | 144. 二叉樹的前序遍歷,力扣刷題集,c語言,數(shù)據(jù)結(jié)構(gòu),算法

提示:

  1. 樹中節(jié)點數(shù)目在范圍 [0, 100] 內(nèi)

函數(shù)原型:

int* preorderTraversal(struct TreeNode* root, int* returnSize) {

首先先觀察一下這個函數(shù)原型,TreeNode* root 為形參,傳入根節(jié)點,int* returnSize為形參,在函數(shù)調(diào)用時用于返回改題目所求數(shù)組的長度,因為由于C語言的局限,只能返回一個參數(shù),所以采用這種通過傳入指針的形參,來改變函數(shù)外部實參的方法。

題目要求給一個二叉樹的根節(jié)點,返回其前序遍歷的數(shù)組。

首先先計算二叉樹的節(jié)點個數(shù),用于后續(xù)的數(shù)組空間申請。

int TreeSize(struct TreeNode* root)
 {
     return root == NULL ? 0 : TreeSize(root->left) + TreeSize(root->right) + 1;
 }

然后先序遍歷,寫入數(shù)組:

因為根據(jù)上述代碼,求得節(jié)點個數(shù)為n,則該數(shù)組一共有n個空間,控制寫入數(shù)組的下標(biāo)需要傳入int* ,因為若直接傳入int,形參的改變不影響實參的改變。

void preorder (struct TreeNode* root, int* a,int* pi)
{
    if(root == NULL)
    return ;
    a[(*pi)++] = root->val;
    preorder(root->left,a,pi);
    preorder(root->right,a,pi);
}

使用malloc函數(shù)構(gòu)建數(shù)組,返回數(shù)組。文章來源地址http://www.zghlxwxcb.cn/news/detail-802267.html

int* preorderTraversal(struct TreeNode* root, int* returnSize) {
    int n = TreeSize(root);
    int* a = (int*)malloc(sizeof(int)*n);
    *returnSize = n;

    int* i = 0;
    preorder(root,a,&i);
    return a;
}

代碼

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
 int TreeSize(struct TreeNode* root)
 {
     return root == NULL ? 0 : TreeSize(root->left) + TreeSize(root->right) + 1;
 }
void preorder (struct TreeNode* root, int* a,int* pi)
{
    if(root == NULL)
    return ;
    a[(*pi)++] = root->val;
    preorder(root->left,a,pi);
    preorder(root->right,a,pi);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize) {
    int n = TreeSize(root);
    int* a = (int*)malloc(sizeof(int)*n);
    *returnSize = n;

    int* i = 0;
    preorder(root,a,&i);
    return a;
}

到了這里,關(guān)于【C語言題解】 | 144. 二叉樹的前序遍歷的文章就介紹完了。如果您還想了解更多內(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)文章

  • 【LeetCode】144.二叉樹的前序遍歷

    【LeetCode】144.二叉樹的前序遍歷

    示例 1: 輸入:root = [1,null,2,3] 輸出:[1,2,3] 示例 2: 輸入:root = [] 輸出:[] 示例 3: 輸入:root = [1] 輸出:[1] 示例 4: 輸入:root = [1,2] 輸出:[1,2] 示例 5: 輸入:root = [1,null,2] 輸出:[1,2] 提示 : 樹中節(jié)點數(shù)目在范圍 [0, 100] 內(nèi) -100 = Node.val = 100 中序遍歷的規(guī)則是 根-左-右,

    2023年04月24日
    瀏覽(18)
  • LeetCode.144. 二叉樹的前序遍歷

    LeetCode.144. 二叉樹的前序遍歷

    144. 二叉樹的前序遍歷 這道題目是比較基礎(chǔ)的題目,我們首先要知道二叉樹的前序遍歷是什么? 就是【 根 左 右 】 的順序,然后利用遞歸的思想,就可以得到這道題的答案,任何的遞歸都可以采用 棧 的結(jié)構(gòu)來實現(xiàn),所以我會寫兩種方式來解決這道題目。 遞歸版本 非遞歸版

    2024年02月19日
    瀏覽(28)
  • 【Leetcode -101.對稱二叉樹 -144.二叉樹的前序遍歷】

    【Leetcode -101.對稱二叉樹 -144.二叉樹的前序遍歷】

    題目:給你一個二叉樹的根節(jié)點 root , 檢查它是否軸對稱。 示例 1: 輸入:root = [1, 2, 2, 3, 4, 4, 3] 輸出:true 示例 2: 輸入:root = [1, 2, 2, null, 3, null, 3] 輸出:false 提示: 樹中節(jié)點數(shù)目在范圍[1, 1000] 內(nèi) 100 = Node.val = 100 思路 :化為子問題比較左子樹和右子樹是否對稱;結(jié)束條

    2024年02月09日
    瀏覽(19)
  • 二叉樹OJ題:LeetCode--144.二叉樹的前序遍歷

    二叉樹OJ題:LeetCode--144.二叉樹的前序遍歷

    朋友們、伙計們,我們又見面了,本期來給大家解讀一下LeetCode中第144道二叉樹OJ題,如果看完之后對你有一定的啟發(fā),那么請留下你的三連,祝大家心想事成! 數(shù)據(jù)結(jié)構(gòu)與算法專欄: 數(shù)據(jù)結(jié)構(gòu)與算法 個? 人? 主? 頁 ?: stackY、 C 語 言 專 欄 : C語言:從入門到精通 ?Leet

    2024年02月13日
    瀏覽(24)
  • 力扣(144. 二叉樹的前序遍歷&&94.二叉樹的中序遍歷&&145. 二叉樹的后序遍歷)

    力扣(144. 二叉樹的前序遍歷&&94.二叉樹的中序遍歷&&145. 二叉樹的后序遍歷)

    題目鏈接 題目1: 思路:較簡單的思路,就是先將左孩子全部入棧,然后出棧訪問右孩子,右孩子為空,再出棧,不為空,右孩子入棧,然后再次循環(huán)訪問左孩子。 題目鏈接 題目2: 思路:同前序遍歷一樣,只不過訪問結(jié)點,改為出棧時訪問。 題目3鏈接 題目3: 思路1:同樣

    2024年01月19日
    瀏覽(26)
  • 算法D14 | 二叉樹1 | 144. 二叉樹的前序遍歷 145. 二叉樹的后序遍歷 94. 二叉樹的中序遍歷

    理論基礎(chǔ)? 需要了解?二叉樹的種類,存儲方式,遍歷方式?以及二叉樹的定義? 文章講解: 二叉樹既可以鏈?zhǔn)酱鎯Γɡ弥羔?,類似棧和隊列),也可以用?shù)組表示。 深度優(yōu)先遍歷 前序遍歷(遞歸法,迭代法) 中序遍歷(遞歸法,迭代法) 后序遍歷(遞歸法,迭代法)

    2024年02月20日
    瀏覽(19)
  • 【Leetcode60天帶刷】day14二叉樹——144.二叉樹的前序遍歷,145.二叉樹的后序遍歷,94.二叉樹的中序遍歷

    【Leetcode60天帶刷】day14二叉樹——144.二叉樹的前序遍歷,145.二叉樹的后序遍歷,94.二叉樹的中序遍歷

    144. 二叉樹的前序遍歷 給你二叉樹的根節(jié)點? root ?,返回它節(jié)點值的? 前序 ? 遍歷。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 提示: 樹中節(jié)點數(shù)目在范圍? [0, 100] ?內(nèi) -100 = Node.val = 100 145. 二叉樹的后序遍歷 給你一棵二叉樹的根節(jié)點? root ?,返回其節(jié)點值的? 后序遍歷

    2024年02月10日
    瀏覽(33)
  • LeetCode 144. 94. 145. 二叉樹的前序,中序,后續(xù)遍歷(詳解) ? ?)?*??

    LeetCode 144. 94. 145. 二叉樹的前序,中序,后續(xù)遍歷(詳解) ? ?)?*??

    目錄 144.二叉樹的前序遍歷 一. TreeSize函數(shù)的實現(xiàn): 二.?preOrderTree函數(shù)的實現(xiàn): 三.preorderTraversal函數(shù)的實現(xiàn): ?最后完整代碼: 94.二叉樹的中序遍歷: ?145.二叉樹的后續(xù)遍歷: 經(jīng)過前面的二叉樹的學(xué)習(xí),現(xiàn)在讓我們實操來練練手~如果對二叉樹還不熟悉的小伙伴可以看看我的

    2024年01月22日
    瀏覽(52)
  • 算法練習(xí)第13天|遞歸實現(xiàn) 144.二叉樹的前序遍歷(opens new window)145.二叉樹的后序遍歷(opens new window)94.二叉樹的中序遍歷

    算法練習(xí)第13天|遞歸實現(xiàn) 144.二叉樹的前序遍歷(opens new window)145.二叉樹的后序遍歷(opens new window)94.二叉樹的中序遍歷

    二叉樹的存儲方式:鏈?zhǔn)酱鎯晚樞虼鎯?。鏈?zhǔn)酱鎯τ弥羔?,順序存儲用?shù)組。其結(jié)構(gòu)如下圖所示。 鏈?zhǔn)酱鎯Γ?順序存儲: 順序存儲時,若父節(jié)點下表為i,則其左孩子下標(biāo)為 2*i + 1,右孩子下標(biāo)為2*i + 2. 二叉樹主要有兩種遍歷方式: 深度優(yōu)先遍歷:先往深走,遇到葉子節(jié)點

    2024年02月22日
    瀏覽(24)
  • 【LeetCode】105. 從前序與中序遍歷序列構(gòu)造二叉樹,106. 從中序與后序遍歷序列構(gòu)造二叉樹,144. 二叉樹的前序遍歷非遞歸實現(xiàn),94. 二叉樹的中序遍歷非遞歸實現(xiàn),145. 二叉樹的后序

    【LeetCode】105. 從前序與中序遍歷序列構(gòu)造二叉樹,106. 從中序與后序遍歷序列構(gòu)造二叉樹,144. 二叉樹的前序遍歷非遞歸實現(xiàn),94. 二叉樹的中序遍歷非遞歸實現(xiàn),145. 二叉樹的后序

    給定兩個整數(shù)數(shù)組 preorder 和 inorder ,其中 preorder 是二叉樹的 先序遍歷 , inorder 是同一棵樹的 中序遍歷 ,請構(gòu)造二叉樹并返回其根節(jié)點。 示例 輸入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] 輸出: [3,9,20,null,null,15,7] 給定兩個整數(shù)數(shù)組 inorder 和 postorder ,其中 inorder 是二叉樹的

    2024年02月04日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包