随笔分类 -  LeetCode-树

摘要:给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。假设给出的两个节点都在树中存在。 dfs递归写法 查找两个node的最近公共祖先,分三种情况: 深度优先遍历二叉树,一旦找到了两个节点其中的一个,就将这个几点返回给上一层,上一层节点通过判断 阅读全文
posted @ 2019-06-16 12:08 demianzhang 阅读(1987) 评论(0) 推荐(0)
摘要:Trie build and search 加 . 正则匹配一个任意字母 ,递归处理,注意p应指向当前遍历字母对应的结点 word search II 1. word list insert to Trie 2. dfs search 421 数组中任意两个数的最大异或值 思路:建树插入所有数,对每 阅读全文
posted @ 2019-03-15 18:10 demianzhang 阅读(210) 评论(0) 推荐(0)
摘要:思路:分成三部分来做:找左边界结点、叶结点、右边界结点。 找左边界结点要遍历root的左子树,如果左孩子存在就加入vector,否则加入右孩子; 找叶结点,可以利用前序遍历,遍历结点改为判断结点是否是叶结点,是则加入;找右边界结点类似于找左边界结点,不过是其逆序,可以利用一个栈来辅助。 还要注意这三 阅读全文
posted @ 2018-12-28 21:43 demianzhang 阅读(251) 评论(0) 推荐(0)
摘要:二叉搜索树 建树 删除节点,三种情况,递归处理。左右子树都存在,两种方法,一种找到左子树最大节点,赋值后递归删除。找右子树最小同理 阅读全文
posted @ 2018-09-11 21:02 demianzhang 阅读(1053) 评论(0) 推荐(0)