![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode刷题
muguangzhilian
这个作者很懒,什么都没留下…
展开
-
Kth Smallest Element in a BST
该题的思路很简单,就是对BST进行先序遍历,找到第k个数的时候返回。这里借助栈用迭代实现,递归的代码更简单,没有尝试。 class Solution { public: int kthSmallest(TreeNode* root, int k) { stack cache; TreeNode *point = root; TreeNode原创 2015-07-12 16:30:36 · 662 阅读 · 0 评论 -
Lowest Common Ancestor of a Binary Search Tree
题目很好理解,即求一棵二叉树中两个节点的公共祖先。 我的解题思路是使用DFS,求出从根节点到两个待查节点各自的路径,然后从头开始比较两个路径,最后一个相等的节点即为公共祖先节点。完整代码如下。 class Solution { public: //DFS代码 void findNode(TreeNode* root, TreeNode* toFind, vector &curPath原创 2015-07-12 01:04:16 · 515 阅读 · 0 评论 -
Palindrome Linked List
该题目的要求是判断一个单链表是否是回文链表,题目的难度在于O(n)时间和O(1)空间的限制。 由于单链表不能反向访问,所以不能直接通过原来的链表来判断,解题的思路是首先对原来的链表的前半部分进行判断,然后进行判断(如链表为“12344321” 反转之后为“43214321”)。想到这一点之后的实现就非常简单了,完整的代码如下所示: class Solution { public: Li原创 2015-07-12 16:26:36 · 778 阅读 · 0 评论 -
Implement Queue using Stacks
该题算是比较简单的,思路是定义两个栈,一个做为入栈,一个做为出栈。入队列的话直接将元素压入入栈,出队列的话首先判断出栈是否为空,为空则将入栈中的元素依次压入出栈中,再从出栈弹出元素。 class Queue { public: // Push element x to the back of queue. void push(int x) { instack.pu原创 2015-07-12 10:03:49 · 566 阅读 · 0 评论 -
Power of Two
该题最简单的办法是迭代除2直到不能再除,看余数是否为1,更好的办法暂时没有想到。 class Solution { public: bool isPowerOfTwo(int n) { if(n < 1) return false; while(n > 1){ if(n % 2 == 1)原创 2015-07-12 10:19:59 · 525 阅读 · 0 评论