2015年11月10日

一些小问题

摘要: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public... 阅读全文

posted @ 2015-11-10 17:37 ShinningWu 阅读(122) 评论(0) 推荐(0) 编辑

链表算法总结

摘要: 基础算法包括:1. 逆转链表ListNode reverseList(ListNode head)2. 寻找链表中间结点ListNode Findmid(ListNode head)3. 切分链表,保留原有相对顺序使小于x的结点在大于等于x的结点左侧ListNode partition(ListNo... 阅读全文

posted @ 2015-11-10 17:23 ShinningWu 阅读(282) 评论(0) 推荐(0) 编辑

链表操作

摘要: 链表的相关算法中常需要设置哨兵连接到链表的第一个结点,这样就可以不影响第一个结点的删除、交换等操作。譬如在链表的插入排序中,令node从哨兵结点dummy开始,使用node.next与head进行比较,既保证了从第一个结点开始比较,又在node.next为空或node.next大于head时方便把h... 阅读全文

posted @ 2015-11-10 16:05 ShinningWu 阅读(126) 评论(0) 推荐(0) 编辑

2015年11月9日

链表排序

摘要: 以O(nlogn)的时间复杂度对链表进行排序。一、 归并排序采用分治思想的归并排序,主要需要的方法有寻找中间结点的函数ListNode Findmid(ListNode head)和归并两个有序链表的函数ListNode merge(ListNode head1, ListNode head2)。然... 阅读全文

posted @ 2015-11-09 22:40 ShinningWu 阅读(662) 评论(0) 推荐(0) 编辑

导航