青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 15, comments - 10, trackbacks - 0, articles - 0

將排序二叉樹轉換成雙向鏈表

Posted on 2014-01-03 00:41 whspecial 閱讀(3637) 評論(0)  編輯 收藏 引用 所屬分類: 算法&&數據結構
將排序二叉樹轉化成雙向鏈表,應該是一道很常見的面試題目,網上的實現比較多,有用遞歸也有用中序遍歷法的。看到一位外國友人的實現,還是比較清晰的,思路如下:
1,如果左子樹不為null,處理左子樹
   1.a)遞歸轉化左子樹為雙向鏈表;
   1.b)找出根結點的前驅節點(是左子樹的最右的節點)
   1.c)將上一步找出的節點和根結點連接起來
2,如果右子樹不為null,處理右子樹(和上面的很類似)
   1.a)遞歸轉化右子樹為雙向鏈表;
   1.b)找出根結點的后繼節點(是右子樹的最左的節點)
   1.c)將上一步找出的節點和根結點連接起來
3,找到最左邊的節點并返回

附上國外友人的鏈接:http://www.geeksforgeeks.org/in-place-convert-a-given-binary-tree-to-doubly-linked-list/

下面是代碼實現:
bintree2listUtil函數返回的node* 是root節點,bintree2list函數返回的是頭節點
This is the core function to convert Tree to list. This function follows
  steps 1 and 2 of the above algorithm */
node* bintree2listUtil(node* root)
{
    // Base case
    if (root == NULL)
        return root;
 
    // Convert the left subtree and link to root
    if (root->left != NULL)
    {
        // Convert the left subtree
        node* left = bintree2listUtil(root->left);
 
        // Find inorder predecessor. After this loop, left
        // will point to the inorder predecessor
        for (; left->right!=NULL; left=left->right);
 
        // Make root as next of the predecessor
        left->right = root;
 
        // Make predecssor as previous of root
        root->left = left;
    }
 
    // Convert the right subtree and link to root
    if (root->right!=NULL)
    {
        // Convert the right subtree
        node* right = bintree2listUtil(root->right);
 
        // Find inorder successor. After this loop, right
        // will point to the inorder successor
        for (; right->left!=NULL; right = right->left);
 
        // Make root as previous of successor
        right->left = root;
 
        // Make successor as next of root
        root->right = right;
    }
 
    return root;
}
 
// The main function that first calls bintree2listUtil(), then follows step 3
//  of the above algorithm
node* bintree2list(node *root)
{
    // Base case
    if (root == NULL)
        return root;
 
    // Convert to DLL using bintree2listUtil()
    root = bintree2listUtil(root);
 
    // bintree2listUtil() returns root node of the converted
    // DLL.  We need pointer to the leftmost node which is
    // head of the constructed DLL, so move to the leftmost node
    while (root->left != NULL)
        root = root->left;
 
    return (root);
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区高清| 久久婷婷综合激情| 国产精品sss| 欧美国产欧美综合 | 在线观看成人小视频| 国产一区成人| 亚洲国产高潮在线观看| 91久久精品视频| 99在线精品观看| 亚洲永久精品国产| 久久精品综合网| 欧美成人一区二区三区| 最新日韩精品| 一本色道婷婷久久欧美| 午夜精品久久| 蜜桃av噜噜一区| 欧美天堂亚洲电影院在线观看| 国产精品欧美日韩一区| 在线精品国精品国产尤物884a| 亚洲美女视频在线观看| 午夜精品一区二区三区四区 | 久久久久久久尹人综合网亚洲| 免费成人在线视频网站| 欧美视频官网| 亚洲第一天堂av| 亚洲欧美日韩成人| 欧美高清视频在线观看| 亚洲午夜视频在线观看| 老司机精品久久| 国产精品九九| 亚洲精品综合| 久久影音先锋| 亚洲欧美一区二区激情| 欧美亚日韩国产aⅴ精品中极品| 极品少妇一区二区三区| 亚洲欧美中文在线视频| 亚洲激情视频网站| 久久精品成人| 国产精品嫩草99av在线| 亚洲美女视频在线观看| 鲁大师成人一区二区三区| 在线亚洲精品| 欧美精品v日韩精品v国产精品| 国产一区999| 久久国产一区二区三区| 正在播放日韩| 欧美视频在线观看 亚洲欧| 亚洲欧洲另类国产综合| 久热精品视频在线| 西西人体一区二区| 国产乱码精品1区2区3区| 亚洲自拍16p| 99精品视频网| 欧美色视频一区| 亚洲欧美欧美一区二区三区| 久久久999精品视频| 国产精品久久网| 亚洲一区久久久| 亚洲美女av黄| 欧美色播在线播放| 亚洲欧美精品在线| 亚洲一区二区在线看| 国产精品人人做人人爽| 亚洲免费视频成人| 亚洲免费在线电影| 国产亚洲欧美另类中文| 久久夜色精品国产欧美乱极品| 久久成人18免费观看| 激情五月综合色婷婷一区二区| 久久天堂成人| 欧美成人精品高清在线播放| 一级日韩一区在线观看| 亚洲图片欧洲图片日韩av| 国产精品日韩久久久| 久久久国产精品一区| 久久aⅴ国产欧美74aaa| 亚洲第一黄色| 亚洲精品久久久久久久久| 欧美三区免费完整视频在线观看| 亚洲中字黄色| 久久精品国产精品| 亚洲啪啪91| 一区二区欧美视频| 国产日韩专区| 欧美阿v一级看视频| 欧美国内亚洲| 欧美一二三区在线观看| 久久尤物视频| 亚洲欧美成人一区二区在线电影| 欧美一区网站| 亚洲美女毛片| 久久国产精品一区二区三区四区| 亚洲三级性片| 欧美亚洲网站| 亚洲视频在线免费观看| 欧美亚洲一区二区在线观看| 亚洲经典视频在线观看| 在线综合亚洲欧美在线视频| 韩国一区二区三区在线观看 | 亚洲国产精品123| 亚洲视频在线看| 在线观看视频日韩| 一区二区三区偷拍| 亚洲成色www久久网站| 99精品国产在热久久婷婷| 国产综合第一页| 一区二区三区av| 亚洲精品国产精品乱码不99按摩| 亚洲男女自偷自拍图片另类| 亚洲激情综合| 久久经典综合| 欧美一级在线播放| 欧美精品一区二区三区很污很色的| 久久成人精品无人区| 欧美日韩国产欧| 午夜精品久久久久久99热| 午夜精品美女自拍福到在线 | 欧美日韩国产在线观看| 久久亚裔精品欧美| 国产精品久久久久久亚洲毛片| 欧美高清在线精品一区| 国产一区二区成人久久免费影院| 亚洲免费播放| 夜色激情一区二区| 欧美黄色一级视频| 欧美高清视频在线| 1204国产成人精品视频| 久久国产精品一区二区三区| 午夜精品久久| 国产精品人人做人人爽人人添| 日韩午夜在线视频| 一区二区三区三区在线| 欧美精品久久久久久久| 欧美成人综合一区| 经典三级久久| 久久嫩草精品久久久精品一| 久久天天躁狠狠躁夜夜爽蜜月| 国产日韩综合| 亚洲欧美日韩另类| 久久国产精品一区二区三区四区| 国产精品入口日韩视频大尺度| 日韩午夜三级在线| 午夜日韩在线| 国内精品美女av在线播放| 久久精品30| 亚洲国产高清高潮精品美女| 亚洲日本欧美天堂| 欧美精品久久久久久久免费观看| 亚洲电影有码| 亚洲视频中文字幕| 国产精品夜色7777狼人| 欧美在线看片a免费观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区在线视频| 欧美+日本+国产+在线a∨观看| 亚洲黄色成人| 亚洲摸下面视频| 国产自产在线视频一区| 老色鬼精品视频在线观看播放| 91久久精品久久国产性色也91| 中文精品视频一区二区在线观看| 国产精品日韩精品欧美在线| 久久精品国产69国产精品亚洲| 亚洲黄一区二区三区| 亚洲网站在线观看| 欧美一区二区视频97| 欧美成人免费网| 欧美精品久久久久久久久久| 亚洲九九九在线观看| 日韩午夜剧场| 久久精品123| 亚洲激情小视频| 国产精品网红福利| 美女国产一区| 中国日韩欧美久久久久久久久| 欧美在线亚洲| 亚洲免费成人| 韩国三级在线一区| 国产精品久久久久久久第一福利 | 亚洲国产欧美在线人成| 亚洲激精日韩激精欧美精品| 国产精品久久久久久久久免费樱桃| 欧美一区在线看| 一本色道久久综合狠狠躁篇怎么玩| 久久精品视频亚洲| 亚洲影院免费| 亚洲精品一二区| 国产综合久久| 国产精品免费观看视频| 欧美成人免费在线观看| 亚洲欧美在线免费观看| 亚洲人体大胆视频| 免费欧美高清视频| 欧美中文字幕视频| 亚洲天堂成人在线视频| 亚洲人精品午夜在线观看| 国产日产欧美精品| 国产精品成人免费视频 | 国产日韩av高清| 欧美性做爰毛片|