麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Leetcode 114. Flatten Binary Tree to Linked List

2019-11-14 12:53:43
字體:
供稿:網(wǎng)友

Given a binary tree, flatten it to a linked list in-place.

For example, Given

1 / / 2 5 / / / 3 4 6

The flattened tree should look like:

1 / 2 / 3 / 4 / 5 / 6

s思路: 1. 看起來,是先訪問中間,然后左邊,最后右邊。又是一個(gè)PRe-order. 2. 用recursive當(dāng)然最簡單。左邊f(xié)latten,右邊f(xié)latten,然后讓root指向flatten后的左邊,讓flatten的左邊的尾節(jié)點(diǎn)指向flatten后的右邊。也就是說,在flatten過程中需要知道頭節(jié)點(diǎn)和尾節(jié)點(diǎn)的指針! 3. 由于要得到左子樹和右子樹的開頭結(jié)尾,所以需要開頭結(jié)尾指針從底層得到給上層使用,因此用reference! 4. 用iterative很有意思,用stack很麻煩,反而不用stack的morris比較方便快捷,由于是pre-order:根左右,傳統(tǒng)的方法,訪問了左邊還要回到根以便訪問右邊,所以必須用stack;morris則是換一個(gè)角度來看問題,把樹臨時(shí)改變一下結(jié)構(gòu):在每個(gè)root時(shí),先找到左子樹的最右節(jié)點(diǎn),然后讓這個(gè)最右節(jié)點(diǎn)指向右子樹的第一個(gè)節(jié)點(diǎn),這就方便了,等訪問完左子樹,就直接訪問右節(jié)點(diǎn)! 這里寫圖片描述 z正常情況下使用morris,還需要在建立這個(gè)輔助的連接后拆除這個(gè)連接以還原樹的本來結(jié)構(gòu),但這道題就要求改變樹的結(jié)構(gòu),所以說,用morris剛剛好!

//方法1:recursive:pre-order。class Solution {public: void helper(TreeNode*& head,TreeNode*& tail) { // if(!head) return; TreeNode* h1=head->left,*h2=head->right; TreeNode* t1=NULL,*t2=NULL; helper(h1,t1); helper(h2,t2); if(!h1&&!h2){ tail=head; }else{ head->left=NULL; head->right=h1?h1:h2; if(h1) t1->right=h2; tail=h2?t2:t1; } } void flatten(TreeNode* root) { // TreeNode* tail=NULL; helper(root,tail); }};//方法2:iterative:用stack的方法很復(fù)雜。參考了網(wǎng)上的用o(1)的morris的方法://https://discuss.leetcode.com/topic/3995/share-my-simple-non-recursive-solution-o-1-space-complexityclass Solution {public: void flatten(TreeNode* root) { // TreeNode* cur=root; while(cur){ if(cur->left){ TreeNode* pre=cur->left; while(pre->right){ pre=pre->right; } pre->right=cur->right;//把左子樹和右子樹先連接起來,這樣就不用stack,聰明! cur->right=cur->left; cur->left=NULL; } cur=cur->right; } }};
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美一级一区二区三区 | 黄片毛片一级 | 欧美在线观看视频网站 | 久久华人 | 人成免费a级毛片 | 国产一区二区三区欧美 | 精品成人av一区二区三区 | 国产精品久久久久久久久久久久午夜 | 91视频久久 | 99视频有精品 | 成人羞羞视频在线观看免费 | 日日摸夜夜添夜夜添牛牛 | 色成人在线 | 欧美一级毛片免费观看视频 | 国产午夜亚洲精品午夜鲁丝片 | 羞羞网站 | 久久网站热最新地址4 | 狠狠婷婷综合久久久久久妖精 | 国产男女爽爽爽爽爽免费视频 | 二区三区在线观看 | 久久九九热re6这里有精品 | 国产成人精品一区在线播放 | 欧美一级片一区 | 国产一级性生活视频 | 欧美精品激情在线 | 欧洲色阁中文字幕 | av在线免费观看网 | 日韩午夜一区二区三区 | 日韩激情一区 | 爱草在线 | 国产精品中文在线 | 免费一级在线观看 | 午夜视频在线免费 | 色淫影院 | 日本免费一区二区三区四区 | 久久亚洲成人 | 国产精品视频一区二区三区综合 | hdhdhd69ⅹxxx黑人 | 日本黄色大片免费 | 国产成人综合在线视频 | 精品国产一区二区三区在线 |