微软技术面试100题答案1.doc

微软技术面试100题答案1,微软面试100题及答案,微软面试题及答案,c微软面试题及答案,技术面试问题及答案,面试问题及答案,公务员面试真题及答案,结构化面试试题及答案,php面试题及答案,java面试题大全带答案

微软技术面试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精品文档

相关文档