void FibHeap2::Node::AssertParentLinks() const { if(mChildren.Empty()) return; Node *cur = mChildren.mFirst; assert(cur->mParentList == &mChildren); cur->AssertParentLinks(); cur = cur->mNextSibling; while(cur != mChildren.mFirst) { assert(cur->mParentList == nullptr); cur = cur->mNextSibling; } }
void FibHeap::Node::AssertParentLinks() const { if(!mFirstChild) return; Node *cur = mFirstChild; do { if(cur == mFirstChild) { assert(cur->mParent == this); } else { assert(cur->mParent == 0); } cur->AssertParentLinks(); cur = cur->mNextSibling; } while(cur != mFirstChild); }