訪問下乙個節點有兩種情況,有右子樹,就往右邊遍歷,其中假如左子樹不為空就一直往左走,否則返回,沒有左子樹就直接返回。
情況二就是像圖中左下角一樣的沒有右子樹或者左右子樹都沒有就要找對應的沒有遍歷過得父節點,(if(parent->left==pnode)這說明剛好是符合要求的父節點,否則就要向上沿路找沒有遍歷過的父節點。
/*struct treelinknode
};*/
class solution
if(pnode->right)
return pnode;
}while(pnode->next)
pnode=pnode->next;
}return null;}};
中序遍歷查詢下乙個節點
給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。思路 就是只考慮當前節點的右邊,父親部分。public class treelinknode 解題思路 如果乙個節點的右子樹不為空,那麼該節點的下乙個節點是右子樹的最...
求中序遍歷的下乙個節點
出處 node findinordersuccessor node root,node target if s.empty else if prev target prev cur cur cur right return null 另外一種原創解法,假設輸入引數只有乙個,所求的為輸入引數的下乙個節...
輸出中序遍歷下最後乙個結點
include include typedef char datatype 樹結構體的定義 typedef struct node bintree bintree root typedef struct stack 棧的結構定義 seqstack void push seqstack s bintr...