微软技术面试1题答案1.docVIP

  • 2
  • 0
  • 约 113页
  • 2017-03-05 发布于贵州
  • 举报
微软技术面试1题答案1

微软技术面试100题第1-10题答案修正与优化 1.把二元查找树转变成排序的双向链表(树) 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / / 6 14 / / / / 4 8 12 16 转换成双向链表 4 6 8 10 12 14 16。 首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode int m_nValue; // value of node BSTreeNode *m_pLeft; // left child of node BSTreeNode *m_pRight; // right child of node ; Sorehead: 第一题: 基本就是采用一次遍历即可,楼主采用的是递归方法。 但有两个建议: 1、函数里面最好不好使用全局变量,采用参数传递的方式可能更好。全局变量能少用就少用。 2、if NULL pCurrent 这种方式我也不是很推荐。我知道采用这种方式的好处是一旦少写了一个等号,编译器会报错,NULL不是一个合法左值。其实我最开始写代码时也是这么写的,很长时间都觉得挺好。但这有个悖论,就是一个开发者能够想起来这么写的时候,这说明他知道这么是要做等值判断,自然也会知道该写 而不是 ,想不

文档评论(0)

1亿VIP精品文档

相关文档