08 尋找二叉樹中的下乙個節點

2021-10-10 06:51:34 字數 921 閱讀 4025

給定乙個二叉樹,樹中節點的資料結構如下:

class

treenode

}

任給乙個節點的值num(樹中節點的值各不相同),輸出該值對應的下乙個中序遍歷節點。

一、根據num用dfs遍歷得到num對應的節點node

public treenode dfsfindval

(treenode root,

int num)

if(root.val == num)if(

dfsfindval

(root.left, num)

!=null)

else

}

node有右子樹,則node的下乙個節點就是它的右子樹中最左的節點;

node沒有右子樹,且node沒有父節點。則node的下乙個節點為null;

node沒有右子樹,且node是其父節點的左子節點。則node的下乙個節點為其父節點;

node沒有右子樹,且node是其父節點的右子節點,則依次往上遍歷node的父節點,node的祖父節點。。。直到找到乙個節點,該節點是其父節點的左子節點或該節點的父節點為null,則該節點的父節點為所求。

**如下:

public treenode findnextnode

(treenode node)

//如果有右子樹

if(node.right != null)

return tempnode;

}else

//如果該點是其父節點的左子節點

if(node == node.father.left)

else

return tempnode.father;}}

}

二叉樹的下乙個節點

問題 題目給出的預設 為 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 當結點的右子樹為空,且是它父節點的左子節點時,它的下乙個節點就是它的父節點...