**出處
node *findinordersuccessor(node *root, node *target)
if (s.empty()) else
if (prev == target)
prev = cur;
cur = cur->right;
}return null;
}
另外一種原創解法,假設輸入引數只有乙個,所求的為輸入引數的下乙個節點
node* findrighttreemostleftchild(node *pnode)
return ptmp;}
node* findinordersucc(node* pnode)
if (pnode = pnode->parent->leftchild)
while (pnode = pnode->parent->rightchild)
return pnode;
}
中序遍歷查詢下乙個節點
給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。思路 就是只考慮當前節點的右邊,父親部分。public class treelinknode 解題思路 如果乙個節點的右子樹不為空,那麼該節點的下乙個節點是右子樹的最...
返回中序遍歷的乙個節點的下乙個節點
題目 返回中序遍歷的乙個節點的下乙個節點 思路 1.該節點是否有右孩子,右孩子的左孩子的最後乙個就是下乙個節點 2.該節點沒有右孩子。它是父節點的左子樹,那麼下乙個節點就是 父節點。3.該節點沒有右孩子。它是父節點的右子樹,那麼就要找它父節點是其乙個節點的左子樹。class solution tre...
劍指offer 尋找中序遍歷的下乙個節點
給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。思路 首先知道中序遍歷的規則是 左根右,然後作圖 結合圖,我們可發現分成兩大類 1 有右子樹的,那麼下個結點就是右子樹最左邊的點 eg d,b,e,a,c,g 2 沒...