题解 | #二叉搜索树与双向链表#

二叉搜索树与双向链表

http://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */

/**
 * 
 * @param pRootOfTree TreeNode类 
 * @return TreeNode类
 */
static struct TreeNode *pre;
//这里需要加static才能正确定义
void Inorder(struct TreeNode *pRoot)
{
  if (!pRoot)
    return;

  Inorder(pRoot->left);
  pRoot->left = pre;
  if (pre)
    pre->right = pRoot;
  pre = pRoot;
  Inorder(pRoot->right);
}

//中序遍历

struct TreeNode *Convert(struct TreeNode *pRootOfTree)
{

  struct TreeNode *p;
  p = pRootOfTree;
  if (p)
  {
    while (p->left)
      p = p->left;
    pre = p->left;
    Inorder(pRootOfTree);
  }
  return p;
}



全部评论

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
4
收藏
分享
牛客网
牛客企业服务