题解 | #二叉树的下一个结点#

二叉树的下一个结点

http://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e

static struct TreeLinkNode *pre = NULL;
static struct TreeLinkNode *ret = NULL;

//中序遍历,结果存入ret
void Inorder(struct TreeLinkNode *root, int val)
{
  if (!root || ret)
    return;
  Inorder(root->left, val);
  if (pre && pre->val == val)
    ret = root;
  pre = root;
  Inorder(root->right, val);
}

struct TreeLinkNode *GetNext(struct TreeLinkNode *pNode)
{
  struct TreeLinkNode *root;
  root = pNode;
  while (root->next)
    root = root->next;

  Inorder(root, pNode->val);
  return ret;
}

全部评论

相关推荐

07-01 17:14
中北大学 Java
兄弟们是真是假
牛客46374834...:我在boss上投java岗从来没成功过
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务