題目描述
給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
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
if pnode.right!=
none
: pnode=pnode.right
while pnode.left!=
none
: pnode=pnode.left
return pnode
while pnode.
next
!=none
: fa=pnode.
next
if fa.left==pnode:
return fa
if fa.right!=
none
and fa.right!=pnode:
pnode=fa.right
while pnode.left!=
none
: pnode=pnode.left
return pnode
pnode=fa
return
none
劍指offer 二叉樹的下乙個結點
題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。using namespace std struct treelinknode class solution treelinknode nextnode n...
劍指offer 二叉樹的下乙個節點
給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。在編寫程式之前,先縷清思路。在該題總,應該分不同情況對其進行討論。情況一 魯棒性 目標節點為空節點時返回ptr 情況二 目標節點沒有父節點且沒有右子樹時,即該節點就是...
劍指offer 二叉樹的下乙個節點
struct treelinknode class solution return currnode case two the node does not has right son,it is the left son of its father if pnode next null return...