美文网首页
二叉树的下一个节点

二叉树的下一个节点

作者: 小码弟 | 来源:发表于2018-10-29 14:05 被阅读0次

给定二叉树和其中某一节点,找出该节点在中序遍历序列的下一个节点

思路:
1.如果该节点有右子树,它的后继节点是右子树中的最左节点

  1. 如果没有右子树,那么由此向上找,如果某个节点的左孩子等于该节点,那么就返回该父节点。
未命名文件.png
TreeNode* getNext(TreeNode* pNode)
{
  if(pNode == NULL)return NULL;
  if(pNode->right)
    {
      while(pNode->left) // 一路向左
        pNode = pNode->left;
      return pNode;
    }
while(pNode->parent)
{
    if(pNode->parent->left == pNode) // 父节点的左孩子等于该节点
      return pNode->parent;
    pNode = pNode->parent;
 } 
}

相关文章

网友评论

      本文标题:二叉树的下一个节点

      本文链接:https://www.haomeiwen.com/subject/hfemtqtx.html