标签:图片 pad code none 中序 isp current font term
给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。
分析题目之后,我们发现,待处理节点只存在三种状态,我们分别处理即可:
BinaryTreeNode* GetNext(BinaryTreeNode* pNode){ if(pNode == nullptr) return nullptr; BinaryTreeNode* pNext = nullptr; if(pNode->m_pRight != nullptr){ BinaryTreeNode* pRight = pNode->m_pRight; while(pRight->m_pLeft != nullptr) pRight = pRight->m_pLeft; pNext = pRight; } else if(pNode->m_pParent != nullptr){ BinaryTreeNode* pCurrent = pNode; BinaryTreeNode* pParent = pNode->m_pParetn; while(pParent != nullptr && pNode = pParent->m_pRight){ pCurrent = pParent; pParent = pParent->m_pParent; } pNext = pParent; } return pNext; }
标签:图片 pad code none 中序 isp current font term
原文地址:https://www.cnblogs.com/ovs98/p/9876129.html