TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { stack<TreeNode*> stk; if (root) stk.push(root); while (!stk.empty()) { root = stk.top(); stk.pop(); if (root) { stk.push(root); stk.push(nullptr); if (root->right) stk.push(root->right); if (root->left) stk.push(root->left); } else { root = stk.top(); stk.pop(); if ((root->left == p &;;&;; root->right == q) || (root->left == q &;;&;; root->right == p)) return root; if (root == p &;;&;; (root->left == q || root->right == q)) return root; if (root == q &;;&;; (root->left == p || root->right == p)) return root; if (root->left == p || root->right == p) p = root; if (root->left == q || root->right == q) q = root; } } return nullptr; }

相关推荐

不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务