leetcode234】的更多相关文章

题目描述: 解题思路: 判断一个单向链表是否是回文链表,并且要求O(n)的时间复杂度和O(1)的空间复杂度. 方法有以下几种: 1.遍历整个链表,将链表每个节点的值记录在数组中,再判断数组是不是一个回文数组,时间复杂度为O(n),但空间复杂度也为O(n),不满足空间复杂度要求. 2.利用栈先进后出的性质,将链表前半段压入栈中,再逐个弹出与链表后半段比较.时间复杂度O(n),但仍然需要n/2的栈空间,空间复杂度为O(n).(起初选用了这种方法) 3.反转链表法,将链表后半段原地翻转,再将前半段.后…
link: leetcode234 回文链表 方法1, 快慢指针,把前半部分存入栈中和后半部分比较 public boolean isPalindrome(ListNode head) { if(head == null || head.next == null) return true; Stack<Integer> stack = new Stack<>(); ListNode slow = head; ListNode fast = head; while(true){ st…
题目: Given a singly linked list, determine if it is a palindrome. 判断一个单链表是不是回文 思路: 1.遍历整个链表,将链表每个节点的值记录在数组中,再判断数组是不是一个回文数组,时间复杂度为O(n),但空间复杂度也为O(n),不满足空间复杂度要求. 2.利用栈先进后出的性质,将链表前半段压入栈中,再逐个弹出与链表后半段比较.时间复杂度O(n),但仍然需要n/2的栈空间,空间复杂度为O(n). 3.反转链表法,将链表后半段原地翻转,…
Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false Example 2: Input: 1->2->2->1 Output: true Follow up:Could you do it in O(n) time and O(1) space? 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2…
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { val = x; } * } */ public class Solution { public bool IsPalindrome(ListNode head) { if (head == null) { return tru…
请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? //章节 - 链表 //三.经典问题 //4.回文链表 /* 算法思想: 利用一个栈,但是这种方法需要O(n) 时间复杂度和 O(n) 空间复杂度. */ //算法实现: /** * Definition for singly-linked list. * struct…
一.通用方法以及题目分类 0.遍历链表 方法代码如下,head可以为空: ListNode* p = head; while(p!=NULL) p = p->next; 可以在这个代码上进行修改,比如要计算链表的长度: ListNode* p = head; ; while(p!=NULL){ num++; p = p->next; } 如果要找到最后的节点,可以更改while循环中的条件,只不过需要加上head为NULL时的判断 if(!head) return head; ListNode…
其他刷题记录见博客首页 1,leecode125 验证回文串 原题: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 实例: 输入: "A man, a plan, a canal: Panama" 输出: true 输入: "race a car" 输出: false 解决: 定义游标i j,i自左向右移动,j自右向左移动,判断字母数字i j是否相等即可 时间复杂度O(n) 空间复…
分门别类刷算法,坚持,进步! 刷题路线参考:https://github.com/youngyangyang04/leetcode-master       https://github.com/chefyuan/algorithm-base 链表基础 在开始刷题之前,我们最好先了解一下链表的一些基础知识,那么现在,我们开始吧. 链表是一种链式存储的线性表,不要求逻辑上相邻的数据元素在物理位置上也相邻. 单链表 一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的引用.也可以称之为数据域…