![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
soso_feige
这个作者很懒,什么都没留下…
展开
-
链表反转
###非递归实现 //思路为将节点从前到后依次放到表头, 最少需要3个指针 ListNode * ReverseList(ListNode *list ) { ListNode *head = NULL; ListNode *current = list; ListNode *next = NULL; while (current...原创 2018-09-19 14:03:42 · 86 阅读 · 0 评论 -
链表反转
迭代法 思想:一边是新链表,一边是原链表。不断地将原链表的头节点头插到新链表中。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class S...原创 2018-11-25 18:59:38 · 92 阅读 · 0 评论 -
链表删除倒数第k结点
思想:快指针先走到第k个结点。然后快慢指针一起往后走,当快指针指向最后一个结点的时候,慢指针就是倒数第k个结点 // 删除倒数第K个结点 public static Node deleteLastKth(Node list, int k) { Node fast = list; int i = 1; while (fast != null && i < ...原创 2018-11-25 22:06:03 · 98 阅读 · 0 评论 -
链表中间结点
// 求中间结点 public static Node findMiddleNode(Node list) { if (list == null) return null; Node fast = list; Node slow = list; //fast.next == null 奇数个 //fast.next.next == null 偶数个 //1 2 //1 2 3 //1 w...原创 2018-11-25 22:17:01 · 98 阅读 · 0 评论