二叉樹的下乙個節點

2021-09-11 21:36:30 字數 997 閱讀 8162

題目描述

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

思路:1.二叉樹為空,返回空

2.# 節點右孩子存在,則設定乙個指標從該節點的右孩子出發,一直沿著指向左孩子的指標找到的沒有左孩子的節點(不一定為葉子節點,也可以有右孩子)即為下乙個節點

3. # 節點不是根節點,(因為上面討論了節點有孩子存在,這裡節點右孩子都不存在)若該節點為其父節點的左孩子,則返回父節點,否則繼續向上遍歷,直到找到其最近父節點,如果其最近父節點是其最近父節點的父節點的左孩子,返回最近父節點的父節點。重複之前的判斷

# -*- 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):

if not pnode:

return none

if pnode.right:

pnode = pnode.right

while pnode.left:

pnode = pnode.left

return pnode

while pnode.next:

proot = pnode.next

if proot.left == pnode:

return proot

pnode = pnode.next **# 注意這裡不是pnode = pnode.next.next,**例:只有在節點為5時,下乙個節點本為1,因為pnode = pnode.next.next為1,而proot為none 造成錯誤

return none

二叉樹的下乙個節點

問題 題目給出的預設 為 1 coding utf 8 2 class treelinknode 3 def init self,x 4 self.val x5 self.left none6 self.right none7 self.next none 8class solution 9def ...

二叉樹的下乙個節點

coding utf 8 class treelinknode def init self,x self.val x self.left none self.right none self.next none 1 該節點有左子樹,說明左邊已經遍歷過,該節點作為根節點,下一步應該填右子樹,如果該節點有...

二叉樹的下乙個節點

題目描述 給定一棵二叉樹和其中的乙個節點,如何找出中序遍歷序列的下乙個節點?樹中的節點除了有兩個分別別指向左右子節點的指標,還有乙個指向父節點的指標 例如 這棵樹的中序遍歷是 d,b,h,e,i,a,f,c,g 解題思路 3 當結點的右子樹為空,且是它父節點的左子節點時,它的下乙個節點就是它的父節點...