链表操作
Perrysky
喜欢编程
展开
-
Leetcode 24. 两两交换链表中的节点(中等) 递归法与非递归法(迭代法)
题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)思路:1、迭代法整个思路是, pre,now,nex, nex->next;...原创 2020-04-27 21:38:23 · 181 阅读 · 0 评论 -
leetcode 234. 回文链表(简单) 快慢指针 和 栈
题目描述:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路:首先想到的是:用栈存下链表的所有结点值,然后链表头开始的遍历与栈顶元素比较,相等就出栈,继续移动比较,否则返回false(可...原创 2020-04-24 20:49:23 · 262 阅读 · 1 评论 -
Leetcode 206. 反转链表(简单) 递归法 和 迭代法
题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked...原创 2020-04-24 17:27:48 · 267 阅读 · 0 评论 -
Leetcode 92.反转链表II (中等)(递归反转单链表的一部分)
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* successor = NULL; //存放后驱节点struct ListNode* reverseN(struct Li...原创 2020-03-19 22:55:55 · 226 阅读 · 0 评论 -
Leetcode 1290. 二进制链表转整数(简单) 位运算 的应用
题目描述:给你一个单链表的引用结点head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例 2:输入:head = [0]输出:0示例 3:输入:head = [1]输出...原创 2020-04-24 16:42:18 · 171 阅读 · 0 评论 -
Leetcode 82. 删除重复的数字(中等) 双指针
题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。示例1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例2:输入: 1->1->1->2->3输出: 2->3思路:用一个空指针指向链表头,然后通过 slow 和 fa...原创 2020-04-24 16:15:47 · 187 阅读 · 0 评论