[ 剑指offer ] 面试题8:二叉树的下一个节点

Posted remly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 剑指offer ] 面试题8:二叉树的下一个节点相关的知识,希望对你有一定的参考价值。

题目描述


 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。

 

解题思路 


1.找到所有的可能情况并归纳,写的代码需要把这些情况都覆盖到。

2.具体情况详见书本# -*- 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
        node = pNode
        if not node:
            return None
        elif node.right:
            node = node.right
            while node.left:
                node = node.left
            return node
        # 提问:如何判断node是父节点的右子树? -
        # 答:傻掉了,这样判断,node.next.right == node
# 注意在做如上的判断的时候请加上前提条件 if node.next,保证代码的严谨
elif node.next and node.next.right == node: while node.next: if node.next.left == node: return node.next node = node.next else: return node.next

 

总结


 

以上是关于[ 剑指offer ] 面试题8:二叉树的下一个节点的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer - 面试题8:二叉树的下一个节点

剑指offer:面试题19二叉树的镜像

剑指offer 面试27题

剑指offer-8 二叉树的下一个节点

剑指offer:二叉树的下一个节点

剑指offer-面试题27-二叉树的镜像-二叉树