劍指offer Python 二叉樹的下一結點

2021-10-01 04:55:41 字數 878 閱讀 4823

給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。

class

treelinknode

:def

__init__

(self, x)

: self.val = x

self.left =

none

self.right =

none

self.

next

=none

class

solution

:def

getnext

(self, pnode)

:if pnode.right:

temp_node = pnode.right

while temp_node.left:

temp_node = temp_node.left

return temp_node

else

: temp_node = pnode

while temp_node.

next

:# 通過指標找到它的父結點

if temp_node.

next

.left == temp_node:

# 如果父結點的左側就是給的結點,直接返回

return temp_node.

next

temp_node = temp_node.

next

# 如果沒有找到位於左側的父結點,就一直找

return

none

# 只有乙個根root的情況

劍指Offer Python 重建二叉樹

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。思路 遞迴實現。主要思路就是通過前序遍歷和中序遍歷確定一棵樹。coding utf 8 class treenode def ...

平衡二叉樹 劍指offer python

第一次寫是從上向下遍歷,但是這會導致很多不必要的判斷,如下 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution def isbalanced solu...

劍指Offer Python 二叉樹的映象

題目 二叉樹的映象 操作給定的二叉樹,將其變換為源二叉樹的映象。思路 遇到樹,用遞迴總沒錯。首先將root的左右子樹交換,再對左子樹進行遞迴映象轉換,然後對右子樹進行遞迴映象轉換。直到當前函式root為空,遞迴結束。coding utf 8 class treenode def init self,...