LeetCode
LeetCode刷题专栏。
包括程序,解题思路,他人解题思路展示。
水水汪
这个作者很懒,什么都没留下…
展开
-
LeetCode.100_[树]_相同的数
文章目录1.题目2.思路3.代码实现4.代码简化1.题目2.思路递归,发现不同一直返回false,相则继续验证3.代码实现class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { boolean flag = true; if(p == null && ...原创 2020-03-02 13:56:33 · 131 阅读 · 0 评论 -
LeetCode.24_[链表]_两两交换链表中的节点
文章目录1.题目2.解题思路3.代码实现1.题目2.解题思路临时存储第一个节点,之后将第一个节点插入到第二和第三个节点之间3.代码实现class Solution { public ListNode swapPairs(ListNode head) { ListNode first = new ListNode(0); first.next = head;...原创 2020-02-27 17:30:40 · 190 阅读 · 0 评论 -
LeetCode.19_[链表]_删除链表的倒数第N个节点
文章目录1.题目2.解题思路3.代码实现4.其他思路1.题目2.解题思路获取链表长度,之后再删掉长度-n+1的的节点3.代码实现class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode first = new ListNode(0); ListNod...原创 2020-02-27 16:39:40 · 184 阅读 · 0 评论 -
LeetCode.2_[链表]_两数相加
文章目录1. 题目2.解题思路3.代码实现4.解法拓展1. 题目2.解题思路找到长度长的链表,把短链表的值直接加到长链表对应的值上,之后判断长链表的值是否大于9,大于则进位,如果后一位为空,得添加一个节点3.代码实现class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ...原创 2020-02-27 13:59:11 · 137 阅读 · 0 评论 -
LeetCode.232_[栈]_用栈实现队列
文章目录1.题目2.解题思路3.代码实现4.其他解法1.题目2.解题思路用两个栈,入队时将栈中元素全部拿出,再全部入栈,把新入元素压入栈底3.代码实现4.其他解法最好是优化入队,繁化出队这个使用了摊还使用两个栈,一个用来入队,一个用来出队LeetCode摊还分析...原创 2020-02-19 10:49:31 · 95 阅读 · 0 评论 -
LeetCode.225_[栈]_用队列实现栈
文章目录1.题目2.解题思路3.代码实现1.题目2.解题思路每次入队时,把之前队列中的数一个个出队再入队,操作结束后,最后入队的在队头(这里可以用一个队列来实现,而我用来一个数组来存储数据,可以优化)3.代码实现class MyStack { Queue<Integer> stack; /** Initialize your data structure ...原创 2020-02-19 10:10:16 · 91 阅读 · 0 评论 -
LeetCode.150_[栈]_逆波兰表达式
文章目录1.题目2.解题思路3.代码实现4.优化解法1.题目2.解题思路用栈存储数据,遇到运算符弹出两个数据进行运算,遇到数据则入栈3.代码实现 Stack<Integer> num = new Stack<Integer>(); int num1, num2; for (int i = 0; i < tokens.l...原创 2020-02-17 23:29:00 · 85 阅读 · 0 评论 -
LeetCode.141_[链表]_环形链表
文章目录1.题目2.解题思路3.代码实现1.题目2.解题思路快慢指针,有环两个指针迟早相遇,没环,快指针走到头就结束3.代码实现public class Solution { public boolean hasCycle(ListNode head) { ListNode first = new ListNode(0); first.next = he...原创 2020-02-17 15:51:34 · 82 阅读 · 0 评论 -
LeetCode.1290_[链表]_二进制链表转整数
文章目录1.题目2.解题思路3.代码实现4.另一种二进制转十进制求法1.题目2.解题思路先遍历一遍链表,获取链表长度,然后从最高位开始计算3.代码实现class Solution { public int getDecimalValue(ListNode head) { ListNode temp = head; int count = 0, sum = ...原创 2020-02-17 11:08:56 · 122 阅读 · 0 评论 -
LeetCode.876_[链表]_链表的中间节点
文章目录1.题目2.解题思路3.代码实现4.另一种解题思路1.题目2.解题思路先遍历一遍链表,获取链表长度,获取到链表的中间节点3.代码实现class Solution { public ListNode middleNode(ListNode head) { ListNode temp = head; int count = 0; while(temp...原创 2020-02-17 10:38:00 · 265 阅读 · 0 评论 -
LeetCode.234_[链表]_回文链表
文章目录1.题目2.解题思路3.代码实现1.题目2.解题思路一开始想用栈来做,但为了空间复杂度达到O(1),使用另一种方法把链表前半段反转,之后与后半段比较3.代码实现class Solution { public boolean isPalindrome(ListNode head) { ListNode first = head, midnode = h...原创 2020-02-16 21:32:43 · 75 阅读 · 0 评论 -
LeetCode.20_[栈]_有效的括号
文章目录1.题目2.解题思路3.代码实现1.题目2.解题思路检测到左括号,入栈检测1到右括号,检查栈顶元素,匹配则出栈3.代码实现class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<Character>(); ...原创 2020-02-16 16:40:51 · 123 阅读 · 0 评论 -
LeetCode.237_[链表]_删除链表中的节点
文章目录1.题目2.解题思路3.代码实现1.题目意思就是,一个函数传入这个节点,你删掉2.解题思路一般就是node.next = node.next.next但这一题不行,他没给你前面的节点所以通过改值,然后删除下一个节点这严格来说不能算删节点3.代码实现class Solution { public void deleteNode(ListNode node) { ...原创 2020-02-16 16:29:53 · 111 阅读 · 0 评论 -
LeetCode.160_[链表]_相交链表
文章目录1.题目2.解题思路(双指针)3.代码实现4.拼接思路1.题目题目不明确,具体意思就是找到两个链表相交的节点,之后返回以相交节点为头节点的链表2.解题思路(双指针)两个相交链表,链表1长度+链表2头节点到相交节点的长度=链表1头节点到相交节点的长度+链表2长度不相交链表,链表1长度+链表2长度=链表2长度+链表1长度3.代码实现public class Solution...原创 2020-02-16 15:41:09 · 87 阅读 · 0 评论 -
LeetCode.206_[链表]_反转链表
文章目录1.题目2.解题思路(一)3.解题思路(二)4.官方的递归解法1.题目2.解题思路(一)建立一个新的头节点,将原先链表上从头到尾的节点依次使用头插法插到新的头节点上class Solution { public ListNode reverseList(ListNode head) { ListNode first = new ListNode(0);...原创 2020-02-16 11:59:40 · 203 阅读 · 0 评论 -
LeetCode.203_[链表]_移除链表元素
文章目录1.题目2.解题思路3.代码实现1.题目2.解题思路设置一个头节点指向已有链表头,一直看链表的下一个元素是不是和待删值相同,相同则删除,不同则移动到下一个节点(设置头节点,一直用next,循环条件中也用next,特别好使)3.代码实现class Solution { public ListNode removeElements(ListNode head, int v...原创 2020-02-15 23:25:38 · 73 阅读 · 0 评论 -
LeetCode.21_[链表]_合并两个有序链表
文章目录1.题目2.解题思路3.代码实现4.其他解法1.题目2.解题思路我的解法:将两个列表第一个元素较小的作为主链,之后把副链的元素插入到主链其他解法:设置一条新的链表,之后将两个链表元素比较,较小的插入新链表链尾,插入之后对应链表移动到下一节点3.代码实现class Solution { public ListNode mergeTwoLists(ListNode l1...原创 2020-02-15 23:17:27 · 75 阅读 · 0 评论 -
LeetCode.83_[链表]_删除排序链表中的重复元素
文章目录1.题目2.解题思路3.代码实现4.遇到问题1.题目2.解题思路以第一个元素为起始点,后yixiang续元素与第一个元素比较,相同责删除,不同则一向下一节点3.代码实现class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode temp = head; whi...原创 2020-02-15 22:49:10 · 93 阅读 · 0 评论 -
LeetCode.155_[栈]_最小栈
leetcode.155_最小栈一、在LeetCode中Java实现二、在eclipse中测试三、解题思路四、LeetCode精选题解原创 2020-02-03 18:14:36 · 108 阅读 · 0 评论