Python

二叉树的下一个结点

http://www.nowcoder.com/questionTerminal/9023a0c988684a53960365b889ceaf5e

时间复杂度为O(n),空间复杂度为O(1)
考虑两种情况,第一种目标结点有右子树,只需要找右子树的最左子结点即可;
第二种,目标结点没有左子树,向上遍历,找到目标结点父节点是其左孩子的结点即可;
反之返回None。
class Solution:
def GetNext(self, pNode):
# write code here
if not pNode:return None
if pNode.right:
pNode = pNode.right
while pNode.left:
pNode = pNode.left
return pNode
while pNode.next:
if pNode.next.left == pNode:
return pNode.next
pNode = pNode.next
return None

全部评论

相关推荐

点赞 评论 收藏
分享
06-12 17:07
沈阳大学 Java
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
程序员牛肉:这一眼假啊,基本上都是骗人的,不然就涉及到职位贪腐了,就像之前华为的OD事件,看你运气好不好了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务