题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
# -*- 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
#1寻找右子树,如果存在就一直找到右子树的最左边就是下一个节点
#2没有右子树,就寻找他的父节点,一直找到它是父节点的左子树,打印父节点
if pNode.right:
temp=pNode.right
while temp.left:
temp=temp.left
return temp
else:
temp=pNode
while temp.next:
if temp.next.left==temp:
return temp.next
temp=temp.next
return None
本文介绍了一种算法,用于在给定二叉树及其其中一个节点的情况下,找到该节点在中序遍历顺序下的下一个节点。文章详细解释了两种情况:当节点有右子树时,下一个节点为其右子树的最左侧节点;当节点无右子树时,需向上查找直至其为父节点的左子节点,此时父节点即为下一个节点。
248

被折叠的 条评论
为什么被折叠?



