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