二叉樹的下乙個結點

2021-08-30 17:28:56 字數 986 閱讀 2139

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

個人思路:記錄中序遍歷結果,從中尋找。**如下:

/*

struct treelinknode

};*/

class solution

if(root->left!=null)

t.push(root);

if(root->right!=null)

}treelinknode* getnext(treelinknode* pnode)

queuet;//存放中序遍歷結果

path(t,pnode);

while(t.front()!=temp)

t.pop();

if(t.empty())

return t.front();}};

但真的勇士敢於直面問題,不迂迴突擊,不做中序遍歷直接尋找

思路:

當前結點的右子樹不為空,根據中序遍歷左根右,則下乙個結點為右子樹中最左邊的點,如b,a,

當前結點的右子樹為空,這裡也分兩種情況,當前結點是父節點的左子樹,則下乙個結點即為父節點,如h,

如果當前結點是父節點的右子樹,如g,e,k,則找它 的父節點,直到,當前結點是父節點的左子樹,如果不存在,如c點,則返回null點

根據這個思路寫**:

/*

struct treelinknode

};*/

class solution

return pnode;

}while(pnode->next!=null)//右子樹為空

return null;//尾節點,則返回null}};

二叉樹的下乙個結點

這幾天由於一些原因沒及時更新部落格,抽時間來寫寫資料結構。這次是去尋找二叉樹的下乙個節點。總體思路最開始依舊是遞迴,但是比較困難,因此還是來畫圖分析。節點有指向父節點的指標next,節點類為 public class treelinknode 中序遍歷是按照 左 根 右 的規律來遍歷的。也就是如果指...

二叉樹的下乙個結點

題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。二叉樹的下乙個結點 author 過路的守望 public class getnextnode 若當前節點有右兒子,則返回右兒子的最左兒子 if node....

二叉樹的下乙個結點

題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。思路 結合圖,我們可發現分成兩大類 1 有右子樹的,那麼下個結點就是右子樹最左邊的點 eg d,b,e,a,c,g 2 沒有右子樹的,也可以分成兩類,a 是...