乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      程序員面試攻略 4.5 面試例題:最低公共祖先

       shaobin0604@163.com 2006-10-23
      4.5 面試例題:最低公共祖先
      已知二元搜索樹上兩個結點的值,請找出它們的公共祖先。你可以假設這兩個值肯定存在。這個函數(shù)的調(diào)用接口如下所示:
      int FindLowestCommonAncestor(node *root, int value1, int value2);

      算法1:
      從兩個給定結點的結點出發(fā)進行回溯,兩條回溯路線的交點就是我們要找的東西。這個算法的具體實現(xiàn)辦法是:先用這兩個結點的全體祖先分別生成兩個鏈表,再把這兩個鏈表第一次出現(xiàn)不同結點的位置找出來,則它們的前一個結點就是我們要找的東西。

      算法2:
      從根結點出發(fā),沿著兩個結定結點的公共祖先前進。當這兩個結點的值同時小于當前結點的值時,沿左指針前進;當這兩個結點的值同時大于當前結點的值時,沿右指針前進;當?shù)谝淮斡龅疆斍敖Y點的值介于兩個給定的結點值之間的情況時,這個當前結點就是我們要找的最低公共祖先了。

      int FindLowestCommonAncestor(node *root, int value1, int value2)
      {
       node *curNode = root;
       for (;;) {
        if (curNode->value > value1 && curNode->value > value2)
         curNode = curNode->left;
        else if (curNode->value < value1 && curNode->value < value2)
         curNode = curNode->right;
        else
         return curNode->value;
       }
      }

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多