Leetcode 107. Binary Tree Level Order Traversal II

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

For example:
Given binary tree [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
return its bottom-up level order traversal as:
[
  [15,7],
  [9,20],
  [3]
]

可以直接使用該題的代碼:http://www.reibang.com/p/e12727485829咧欣,然后將結(jié)果的數(shù)組反轉(zhuǎn)即可。
反轉(zhuǎn)數(shù)組比較慢轨帜,可以先得到數(shù)的高度魄咕,然后在遞歸處理的時(shí)候由數(shù)的層數(shù),就可以知道應(yīng)該放在數(shù)組哪個(gè)位置了蚌父。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *columnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
void level(struct TreeNode* root, int** columnSizes, int* returnSize,int** ans,int height)
{
    if(height>*returnSize)
    {
        *returnSize=*returnSize+1;
        ans[height-1]=(int *)malloc(sizeof(int)*100000);
        (*columnSizes)[height-1]=0;
    }
    if(root==NULL)return;
    ans[height-1][(*columnSizes)[height-1]]=root->val;
    //printf("%d: %d %d\n",height-1,(*columnSizes)[height-1],ans[height-1][(*columnSizes)[height-1]]);
    (*columnSizes)[height-1]=(*columnSizes)[height-1]+1;
    
    
    if(root->left!=NULL)
        level(root->left,columnSizes,returnSize,ans,height+1);
    if(root->right!=NULL)
        level(root->right,columnSizes,returnSize,ans,height+1);
    return;
}
int** levelOrderBottom(struct TreeNode* root, int** columnSizes, int* returnSize) {
    int **ans=(int**)malloc(sizeof(int*)*1000);
    *returnSize=0;
    *columnSizes=(int *)malloc(sizeof(int)*1000);
    if(root==NULL)return ans;
    level(root,columnSizes,returnSize,ans,1);
    for(int i=0;i<(*returnSize)/2;i++)
    {
        int temp;
        if((*columnSizes)[i] > (*columnSizes)[(*returnSize)-1-i])
        {
            for(int j=0;j<(*columnSizes)[i];j++)
            {
                temp=ans[i][j];
                ans[i][j]=ans[(*returnSize)-1-i][j];
                ans[(*returnSize)-1-i][j]=temp;
                
            }
        }
        else
        {
            printf("3\n");
            for(int j=0;j<(*columnSizes)[(*returnSize)-1-i];j++)
            {
                temp=ans[i][j];
                ans[i][j]=ans[(*returnSize)-1-i][j];
                ans[(*returnSize)-1-i][j]=temp;
            }
        }
        temp=(*columnSizes)[i];
        (*columnSizes)[i]=(*columnSizes)[(*returnSize)-1-i];
        (*columnSizes)[(*returnSize)-1-i]=temp;
    }
    return ans;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市苟弛,隨后出現(xiàn)的幾起案子喝滞,更是在濱河造成了極大的恐慌,老刑警劉巖膏秫,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件右遭,死亡現(xiàn)場離奇詭異,居然都是意外死亡缤削,警方通過查閱死者的電腦和手機(jī)窘哈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亭敢,“玉大人滚婉,你說我怎么就攤上這事∷У叮” “怎么了满哪?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長劝篷。 經(jīng)常有香客問我哨鸭,道長,這世上最難降的妖魔是什么娇妓? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任像鸡,我火速辦了婚禮,結(jié)果婚禮上哈恰,老公的妹妹穿的比我還像新娘只估。我一直安慰自己,他們只是感情好着绷,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布蛔钙。 她就那樣靜靜地躺著,像睡著了一般荠医。 火紅的嫁衣襯著肌膚如雪吁脱。 梳的紋絲不亂的頭發(fā)上桑涎,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機(jī)與錄音兼贡,去河邊找鬼攻冷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛遍希,可吹牛的內(nèi)容都是我干的等曼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼凿蒜,長吁一口氣:“原來是場噩夢啊……” “哼禁谦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起废封,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤州泊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后虱饿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拥诡,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡触趴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年氮发,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冗懦。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爽冕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出披蕉,到底是詐尸還是另有隱情颈畸,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布没讲,位于F島的核電站眯娱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏爬凑。R本人自食惡果不足惜徙缴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘁信。 院中可真熱鬧于样,春花似錦、人聲如沸潘靖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卦溢。三九已至糊余,卻和暖如春秀又,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啄刹。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工涮坐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人誓军。 一個(gè)月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓袱讹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親昵时。 傳聞我的和親對象是個(gè)殘疾皇子捷雕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容