摘要:
转自:http://www.cnblogs.com/qyaizs/articles/2039101.html分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是struct Student的别名。Stu==struct Student 另外这里也可以不写Student(于是也不... 阅读全文
摘要:
转自:http://www.cnblogs.com/candyming/archive/2011/12/04/2275448.html尾部递归是一种编程技巧。递归函数是指一些会在函数内调用自己的函数,如果在递归函数中,递归调用返回的结果总被直接返回,则称为尾部递归。尾部递归的函数有助将算法转化成函数编程语言,而且从编译器角度来说,亦容易优化成为普通循环。这是因为从电脑的基本面来说,所有的循环都是利用重复移跳到代码的开头来实现的。如果有尾部归递,就只需要叠套一个 stack,因为电脑只需要将函数的 parameter 改变再重新跑一次。例如,可以把上一次函数的输出当作下一次的输入。然而,利用尾部 阅读全文
摘要:
题目:http://www.leetcode.com/2011/07/lowest-common-ancestor-of-a-binary-search-tree.html思路,先判断入口是否有非法输入。1 如果某一个root==p || root == q,那么LCA肯定是root(因为是top down,LCA肯定在root所囊括的树上,而root又是p q其中一个节点了,那么另外一个节点肯定在root之下,那么root就是LCA),那么返回root2 如果root<min(p, q),那么LCA肯定在右子树上,那么递归3如果max(p, q)<root,那么LCA肯定在左子树 阅读全文