关注
无右子树的两个分支其实可以合并,迭代两个节点pre即前一个结点和cur即前一个结点的父节点,初始时pre=输入,cur=输入的父节点,迭代停止条件为cur == nullptr || cur->left == pre。
总体代码:
class Solution {
public:
TreeLinkNode* GetNext(TreeLinkNode* pNode)
{
if (pNode == nullptr) return nullptr;
// 如果有右子
if (pNode->right) {
TreeLinkNode* cur = pNode->right;
while (cur->left) {
cur = cur->left;
}
return cur;
}
// 无右子,一直迭代到cur为父的左子,此时父为下一个
else {
TreeLinkNode* pre = pNode;
TreeLinkNode* cur = pNode->next;
while(cur != nullptr && cur->left != pre) {
pre = cur;
cur = cur->next;
}
return cur;
}
}
};
1
相关推荐
05-29 13:37
北京科技大学 算法工程师 认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的
开发你这个也没有项目啊
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 秋招什么时候开投比较合适? #
23701次浏览 318人参与
# 百度工作体验 #
223389次浏览 1972人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
27960次浏览 216人参与
# 机械人与华为的爱恨情仇 #
117155次浏览 946人参与
# 发工资后,你做的第一件事是什么 #
68154次浏览 229人参与
# 机械人集合!你是什么工程师? #
15805次浏览 89人参与
# 你觉得实习能学到东西吗 #
36307次浏览 712人参与
# 找不到好工作选择GAP真的丢人吗 #
78265次浏览 938人参与
# 我想去国央企的原因 #
59993次浏览 393人参与
# 如何准备秋招 #
20667次浏览 390人参与
# 工作中哪个瞬间让你想离职 #
25909次浏览 177人参与
# 入职第四天,心情怎么样 #
29451次浏览 417人参与
# 拼多多工作体验 #
28540次浏览 197人参与
# 多益网络求职进展汇总 #
29228次浏览 134人参与
# 快手求职进展汇总 #
547098次浏览 6001人参与
# 硬件应届生薪资是否普遍偏低? #
74083次浏览 514人参与
# 不考虑转正,实习多久合适 #
32324次浏览 145人参与
# 面试中,你被问过哪些奇葩问题? #
68553次浏览 796人参与
# 你们公司几号发工资 #
21227次浏览 140人参与
# 如果再来一次,你还会学硬件吗 #
125786次浏览 1402人参与
# 实习,不懂就问 #
46386次浏览 693人参与