剑指offer-二叉树的下一个结点(python)

思路:分两种情况:
在这里插入图片描述
中序遍历:左中右
1.当有右节点的时候,那就找右边子树最左边的节点。
2.当节点没有右节点的时候,就要找到根,看看该节点是不是根节点,还不是的话一直找根,如图所示的J节点。

# -*- 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):
        # write code here
        if not pNode:
            return None
        if pNode.right:
            res=pNode.right
            while res.left:
                res=res.left
            return res
        while pNode.next:
            tmp=pNode.next
            if tmp.left==pNode:
                return tmp
            pNode=tmp
        return None

猜你喜欢

转载自blog.csdn.net/qq_42738654/article/details/104615581