链表的回文检测有关链表的回文检测,用到的就是链表操作中常常用到的双指针的方法,找到链表的中点位置,然后依次对比两边的结点。但是在找链表的中点的时候要注意链表的总个数是偶数或者奇数的两种情况。1.找链表的中点位置,并把中点以前的各个结点的值存入到栈中。2.针对偶数或者奇数个链表结点,对中点结点做一个小...
分类:
编程语言 时间:
2015-09-17 19:26:43
阅读次数:
262
Sort List
Sort a
linked list in O(n log n)
time using constant space complexity.
解题思路:
题意为以常量存储空间和O(nlogn)时间复杂度来排序链表。
可以用合并排序法,并用双指针法来找到中间节点。
产生一个头结点方便编码。
/**
* Definition for singly-link...
分类:
其他好文 时间:
2015-08-17 17:30:45
阅读次数:
161
Method 1: 先遍历一次获得中长度, 在遍历len-n+1次获得所求nodeMethod 2: 运用双指针, 开始两个指针都指向head, 然后先移动第一个指针, 使其指向第n个node, 然后两个指针一个移动, 当第一个指针移动到尾部时, 第二个node就指向所求nodecode2015-0...
分类:
其他好文 时间:
2015-08-16 15:06:14
阅读次数:
125
题目
输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第一个结点.双指针实现一次遍历就能找到,要注意代码的鲁棒性.code:ListNode* FindKthToTail(ListNode* pListHead, unsigned int k)
{
if (pListHead == NULL || k == 0)
{...
分类:
其他好文 时间:
2015-08-15 13:34:39
阅读次数:
130
Convert Sorted List to Binary Search Tree
Given
a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
解题思路:
题意为构造有序链表的二分查找树。找到中间节点的办法用双指针法。注意我们...
分类:
其他好文 时间:
2015-08-11 18:51:47
阅读次数:
136
在很多链表的算法中,常常需要找到链表的中点。这里给出一种使用双指针,一次遍历链表就能找到链表中点的方法。使用一个快指针,每次走两步,一个慢指针,每次走一步。等快指针走到链表底部的时候,慢指针正好走到中点。/*** Definition for singly-linked list.* struct ...
分类:
其他好文 时间:
2015-08-10 18:04:57
阅读次数:
382
Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, return
0 instead.
For example, given the array [2,3...
分类:
其他好文 时间:
2015-08-08 12:11:52
阅读次数:
168
题意:
给出一个边上带权的无根树;
求距离不大于m的结点对数;
多组数据,n
题解:
1/8个男人留念吧。。
学了树的分治之后来切这道题,听别人讲完写写就A了;
但是发现自己模板写的好烂,改了一大通;
这题就是考虑点分治,每次在当前子树中找经过重心的点对数;
那么就是将以重心为根的距离dis数组排序,然后双指针乱扫线性找出结点对数;
但是这里可能会出现在同一子树中的情况...
分类:
其他好文 时间:
2015-07-22 10:50:00
阅读次数:
107
1. 问题描述 给定一个单链表,删除它的倒数第k个节点。例如给定链表: 1→2→3→4→51\to 2 \to 3\to 4 \to 5,删除它的倒数第二个节点后变为 1→2→3→51\to 2 \to 3\to 5。可以假设倒数第k个节点总是存在。2. 方法与思路 很容易想到第一种方法,就是先对单链表进行进行一次遍历,求出其长度n。然后再进行第二次遍历,设一个指针,向后移动n?kn-k个位置,...
分类:
其他好文 时间:
2015-07-20 16:20:51
阅读次数:
173
题目Given a singly linked list, determine if it is a palindrome.Follow up:
Could you do it in O(n) time and O(1) space?思路利用双指针法找到链表中点位置,链表中点以后的的元素(不包括中点元素)翻转,再跟链表中点位置以前的元素一一匹配。代码/*----------------------...
分类:
其他好文 时间:
2015-07-18 17:05:25
阅读次数:
91