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

二叉树的下一个节点

作者: 小码弟 | 来源:发表于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