設計並實現乙個演算法,找出二叉樹中某兩個節點的第乙個共同祖先。不得將其他的節點儲存在另外的資料結構中。注意:這不一定是二叉搜尋樹。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
treenode* lowestcommonancestor(treenode* root, treenode* p, treenode* q)
};
treenode* lowestcommonancestor(treenode* root, treenode* p, treenode* q)
treenode* y = lowestcommonancestor(root->right,p,q);
if(y != null && y != p && y != q)
if(x != null && y != null)
return root;
else if(root == p || root == q)
return root;
else
return x == null ? y : x;
}
面試題 04 08 首個共同祖先
設計並實現乙個演算法,找出二叉樹中某兩個節點的第乙個共同祖先。不得將其他的節點儲存在另外的資料結構中。注意 這不一定是二叉搜尋樹。例如,給定如下二叉樹 root 3 1,節點p或者q是root節點,返回根節點 if root val p val root val q val treenode lef...
程式設計師面試金典 0408 首個共同祖先
設計並實現乙個演算法,找出二叉樹中某兩個節點的第乙個共同祖先。不得將其他的節點儲存在另外的資料結構中。注意 這不一定是二叉搜尋樹。例如,給定如下二叉樹 root 3 5,1 6,2 0,8 null,null,7,4 3 51 62 08 7 4示例 1 輸入 root 3 5,1 6,2 0,8 ...
leetcode面試題04 08 首個公共祖先
1.遞迴 設函式f root,p,q 返回的是p,q的公共祖先,則有三種情況,公共祖先為根節點root,公共祖先在root的左子樹中,公共祖先在root的右子樹中,函式f root left,p,q 是在根節點的左子樹中尋找p,q的公共祖先,則右四種情況 公共祖先為節點root left,公共祖先在...