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

二叉树的下一个结点

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

全部评论

相关推荐

01-07 11:46
Java
如图:也是让我遇到逆天公司了,实习生是按天给工资,不忙直接强制休假了
baskly:公司为北京超图软件股份有限公司武汉分公司,明年公司应该会招新实习生,刷到的小伙伴快跑
点赞 评论 收藏
分享
2025-11-26 09:37
山西大学 测试工程师
我要娶个什么名:学长你电脑闹鬼了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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