給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
分三種情況考慮。1、若該節點存在右子樹,則下一節點為右子樹最左邊的節點。2、該節點不存在右子樹,若該節點為父節點的左節點,則該父節點為該節點的下一節點。3、若該節點為其父節點的右節點,則一直往上遍歷,直至遍歷節點為其父節點的左節點,即最後父節點為要找的下乙個節點。**如下:
public treelinknode getnext
(treelinknode pnode)
pnext=pright;
}else
if(pnode.next!=null)
pnext=pparent;
}return pnext;
}
8 二叉樹的下乙個節點
理解關鍵 先序遍歷的意思是先遍歷左子樹,等到左子樹全部遍歷完之後才遍歷自己,然後是右子樹。include using namespace std struct binarytreenode 視覺化樹結構 void padding char ch,int n void print node struc...
8 二叉樹的下乙個節點
public static treenode getnext treenode node treenode temp node.right treenode nextnode 如果乙個節點有右子樹 if temp null nextnode temp 如果乙個節點沒有右子樹,且是它父節點的左子節點 ...
8 二叉樹的下乙個節點
1 題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。public class treelinknode 2 思路 以該二叉樹為例,中序遍歷為 仔細觀察,可以把中序下一結點歸為幾種型別 有右子樹,下一結點是...