摘要: 和二叉树中两个结点的公共祖先相关的有两个问题,一个是求最低的公共祖先,第二个是求所有公共祖先。首先看第一个,仔细观察不难发现,二叉树中两个结点的最低公共祖先满足一个性质,就是给定两个结点分别处于以最低公共祖先两个孩子为根节点的子树中。我们可以采用DFS来搜索两个给定结点,对于每个结点通过比较搜索其两子树的返回值和来确定,因为是先搜索两子树后判定,所以遇到的第一个符合条件的结点一定是最低公共祖先。代码如下: 1 PtrNode lowest_common_ancestor(PtrNode root, int a, int b) 2 { 3 PtrNode res, res_l... 阅读全文
posted @ 2013-05-11 23:00 liyunyu1 阅读(348) 评论(0) 推荐(0) 编辑
摘要: enum Status{KValid=0,KInvalid};int g_nStatus=KValid;int StrToInt(const char *str){ g_nStatus=KInvalid; long num=0; if(str!=NULL||*str!='\0') { bool minus=false; if(*str=='+') str++; else if(*str=='-') { str++; minus=true } if(*str!='0') { ... 阅读全文
posted @ 2013-05-11 21:49 liyunyu1 阅读(262) 评论(0) 推荐(0) 编辑