Leetcode 题解 reverse List II
这个题确实太容易错了。
我已经做了2遍了,之前都是套用reverse List 1中的函数。
现在尝试用新方法,在一个函数里完成,结果又错了。
事实证明,永远不要想当然!!!白板编程真的是要求,你对每一行代码都知道在做什么!尤其是边界条件。
因为没有编译调试环境,写错了,你根本看不出来,没有修改的机会啊!!
要求一遍就过啊!
这太难了。看看我提交的这些题目,几个是一遍就过的???都是写完先跑一遍再说,有错再慢慢改!!
毛病啊!!
struct ListNode* reverseBetween(struct ListNode* head, int m, int n) {
if( m >= n) return head;
struct ListNode * dummy = (struct ListNode *)malloc(sizeof(struct ListNode));
dummy->next = head;
struct ListNode* pm, *pn,*pre,*last,*mid;
int i;
pm = dummy;
for(i = ; i < m-;i++) //找到m前边那个 i表示当前pm指向的是哪个。初始pm指向第0个,最后指向第m-1个。出口(i = m-1)
{
pm = pm->next;
}
pn = dummy;
for(i = ; i < n; i ++) //初始指向第0个,最后指向第n个
{
pn = pn ->next;
}
mid = pm->next;
last = pn->next;
// 这里太他妈容易错了!!! while(mid != pn->next) 因为当mid = pn的循环,pn->next的值就被改变了!
struct ListNode *end = pn->next;
while(mid != end)
{
pre = mid->next;
mid->next = last;
last = mid;
mid = pre;
}
pm->next = last;
mid = dummy->next;
free(dummy);
return mid;
}
Leetcode 题解 reverse List II的更多相关文章
- [LeetCode 题解]: Reverse Nodes in K-Groups
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a li ...
- leetCode题解 Reverse Words in a String III
1.题目描述 Given a string, you need to reverse the order of characters in each word within a sentence wh ...
- LeetCode 541. Reverse String II (反转字符串 II)
Given a string and an integer k, you need to reverse the first k characters for every 2k characters ...
- LeetCode题解——Reverse Integer
题目: 数字翻转,即输入123,返回321:输入-123,返回-321. 代码: class Solution { public: int reverse(int x) { , sign = ; ) ...
- leetcode题解||Reverse Integer 问题
problem: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 ...
- [LeetCode 题解]: Permutations II
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
- LeetCode题解-----Majority Element II 摩尔投票法
题目描述: Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The a ...
- [LeetCode] 344 Reverse String && 541 Reverse String II
原题地址: 344 Reverse String: https://leetcode.com/problems/reverse-string/description/ 541 Reverse Stri ...
- leetcode 344. Reverse String 、541. Reverse String II 、796. Rotate String
344. Reverse String 最基础的旋转字符串 class Solution { public: void reverseString(vector<char>& s) ...
随机推荐
- google最新的书签导入导出
1.google浏览器地址栏最右边,自定义及控制--->书签----->书签管理器 2. 右上角,有整理图标, 3.点击按钮即可导入导出书签
- [UE4]判断UI动画播放方向
使用一个变量来记录播放的方向.
- PTA2016天梯赛决赛3小时训练赛
7-2 I Love GPLT (5 分) 这道超级简单的题目没有任何输入. 你只需要把这句很重要的话 —— I Love GPLT ——竖着输出就可以了. 所谓“竖着输出”,是指每个字符占一行(包括 ...
- Go语言 函数,工程管理
Go语言 函数,工程管理 1.无参无返回值函数的使用 package main import "fmt" func main() { // 无参无返回值函数的调用:函数名() fu ...
- 多线程Task
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Docker使用札记 - Dockerfile指令
ARG ARG跟ENV都可以定义变量,不同在于ARG在构建期结束时是销毁,而ENV定义的是系统中的环境变量,不会在构建结束时销毁,在以后的构建中直接使用. 当ARG和ENV定义相同名称的变量时,ENV ...
- MVC Html辅助方法DropDownList的简单使用、连接MYSQL数据库用自定义model类接收
附上启发链接:https://www.cnblogs.com/CreateMyself/p/5424894.html [HttpGet] public ActionResult Edit(int id ...
- .NET发送邮箱(验证码)
先看下前端: 写代码前先设置: 一:登录QQ邮箱,点击设置 二: 三: //下面开始敲代码... //两个命名空间 //using System.Net; //using System.Net.Mai ...
- TCP/IP_网络基础知识
今天看到k8s的网络,顿感网络知识不是特别扎实,立马回头补一下Tcp-ip知识,顺便记录下学习的过程: 计算机与网络发展的7个阶段: 批处理时代(计算机按照顺序处理,50年代)->分时系统时代( ...
- IDEA下载Git中项目
一. 打开idea,点击File>Settings,搜索git(安装系统默认设置即可) 二. 选择git 三. Git中项目的路径粘贴到ID ...