給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
# -*- 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
ifnot pnode:
return
none
if pnode.right:
# 下乙個節點一定在右子樹的最左端
res = pnode.right
while res.left:
res = res.left
return res
else
: father = pnode.
next
while father and father.right == pnode:
# 如果節點是父節點的右兒子,那麼繼續往上
pnode = father
father = pnode.
next
return father
劍指Offer(57) 二叉樹的下乙個結點
給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。分三種情況 1 如果當前結點有右子樹,那麼它的下乙個結點就是它的右子樹的最左子結點 2 如果當前結點沒有右子樹,且為它父結點的左子結點,那麼它的下乙個結點就是它的父結...
劍指offer 57 二叉樹的下乙個結點
1.題目描述給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。2.解題思路情況1 該節點有右子樹 6 3 10 2 5 8 12中序遍歷結果為 2 3 5 6 8 10 12 即它的下乙個結點就是它的右子樹中最左子結...
劍指offer 57 二叉樹的下乙個結點
給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。1 如果該結點有右子樹,那麼它的下乙個結點就是它右子樹的最左子節點 2 如果該結點沒有右子樹 1 如果是它父節點的左子節點,那麼它的下乙個結點就是它的父節點 2 如果...