leetcode面試題04 08 首個公共祖先

2021-10-07 13:51:26 字數 508 閱讀 5583

1.遞迴

設函式f(root,p,q)返回的是p,q的公共祖先,則有三種情況,公共祖先為根節點root,公共祖先在root的左子樹中,公共祖先在root的右子樹中,

函式f(root->left,p,q)是在根節點的左子樹中尋找p,q的公共祖先,則右四種情況:公共祖先為節點root->left,公共祖先在root->left的左子樹中,公共節點在root->left的右子樹中,找不到公共節點,

對於root->right,同理,

則只需要設定遞迴出口條件,然後呼叫即可

**如下:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

};

面試題 04 08 首個共同祖先

設計並實現乙個演算法,找出二叉樹中某兩個節點的第乙個共同祖先。不得將其他的節點儲存在另外的資料結構中。注意 這不一定是二叉搜尋樹。例如,給定如下二叉樹 root 3 1,節點p或者q是root節點,返回根節點 if root val p val root val q val treenode lef...

leetcode 面試題專題

面試題51.陣列中的逆序對 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。利用歸併排序,將陣列分成兩部分,前面一部分和後面一部分,進行歸併的時候,需要比較兩個陣列的數值大小,如果第二個陣列的值小的話,代表前乙個陣列剩下的都...

位元組面試題 leetcode

給定乙個迴圈陣列 最後乙個元素的下乙個元素是陣列的第乙個元素 輸出每個元素的下乙個更大元素。數字 x 的下乙個更大的元素是按陣列遍歷順序,這個數字之後的第乙個比它更大的數,這意味著你應該迴圈地搜尋它的下乙個更大的數。如果不存在,則輸出 1。示例 1 輸入 1,2,1 輸出 2,1,2 解釋 第乙個 ...