题解 | #二叉树的下一个结点#

二叉树的下一个结点

https://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e

step1:如果给出的节点有右子节点,则下一个节点就是右子节点的最左节点
step2:如果给出的节点五右子节点且是父级节点的左子节点,则下一节点就是其父节点。如果给出的节点五右子节点且父节点的右子节点,则向上寻找父节点,直到找到该节点是父节点的左子节点,则下一个节点就是该父节点。时O(n),空O(1)
# -*- coding:utf-8 -*-
# class TreeLinkNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#         self.next = None
class Solution:
    def GetNext(self, pNode):
        p = pNode
        if p.right:
            p = p.right
            while (p.left):
                p = p.left
            return p
        else:
            while (p.next):
                if p.next.left == p:
                    return p.next
                p = p.next
            return None

全部评论

相关推荐

06-13 17:00
武汉大学 Java
6月了还有点击就送的offer吗😭,投麻了😢
叫我阿东就行:这个bg,也还没找到理想的工作吗?好难,好焦虑
点赞 评论 收藏
分享
舂锋:不能投什么岗都用一份简历,一般都是要看企业的岗位需求来写职业技能或者是项目经历,跟岗位相关的就写多一点。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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