摘要: 原题链接原文中的思路其实就是我面试时的初步思路,不过当时我没整理出来,所以可以看出这个思路还是有写复杂的。其实有一个更简单的思路:中序遍历对节点的遍历顺序就是我们要的顺序,我们只要有一个全局变量pre,记录上一个刚刚访问的节点,就可以让问题简化很多。xuxu8511的做法就是这个思路,但是他这个做法(C++实现),需要专门新建一个节点保存头结点,若多用一个头指针,则可以免去这步操作。如下所示: 1 struct node *head = NULL, *pre = NULL; 2 void tree_to_list(struct node *root) { 3 if(root == NULL.. 阅读全文
posted @ 2012-08-31 10:58 frank-fl 阅读(103) 评论(0) 推荐(0)
摘要: 原题链接这道题的优化思路是:求数的深度和判断数的平衡可以同时来做,但由于返回值用来判断数是否平衡,因此无奈加入了一个指针参数,来传递子树的深度。我认为其实深度也可以包含在返回值中,我们定义返回值的意义如下:-1表示该树不平衡。非负数表示该树平衡,平且该值同时表示树的深度。通过这种做法,可以简化接口。让代码更简洁一些,C代码如下:1 int is_balanced(struct node *root) {2 if(root == NULL) { return 0; }3 int ld = is_balanced(root->l);4 int rd = is_balanced(root... 阅读全文
posted @ 2012-08-31 10:47 frank-fl 阅读(109) 评论(0) 推荐(0)
摘要: 在blogspot写了有三四个月,有种在火星的感觉,自己上还得用代理,更别说别人了。经过这一段时间的写写停停,发现写博客还是很有一些好处的,会觉得自己还是做了一些事情,学到了一些东西。选择博客园,是觉得这里是一个小圈子,热闹。废话不多说了,多写文章,保证质量,开始新的旅程吧! 阅读全文
posted @ 2012-08-28 22:29 frank-fl 阅读(82) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示