leetcode206
/**
* Definition for singly-linked list.
* public class ListNode {
* public int val;
* public ListNode next;
* public ListNode(int x) { val = x; }
* }
*/
public class Solution
{
Stack<ListNode> S = new Stack<ListNode>();
private void SaveList(ListNode node)
{
if (node != null)
{
S.Push(node); if (node.next != null)
{
SaveList(node.next);
}
}
} private ListNode GetLastNode(ListNode head)
{
while (head.next != null)
{
head = head.next;
}
return head;
} public ListNode ReverseList(ListNode head)
{
SaveList(head);
ListNode newhead = null;
while (S.Count > )
{
var curnode = S.Pop();
curnode.next = null;
if (newhead == null)
{
newhead = curnode;//找到链头
}
else
{
var prenode = GetLastNode(newhead);//找到新的链尾
prenode.next = curnode;
}
}
return newhead;
}
}
https://leetcode.com/problems/reverse-linked-list/#/description
简化的代码:
public class Solution
{
public ListNode ReverseList(ListNode head)
{
//ListNode p = head;
ListNode n = null;
while (head != null)
{
ListNode temp = head.next;
head.next = n;
n = head;
head = temp;
}
return n;
}
}
补充一个python的实现:
class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
temp = ListNode()
while head != None:
nextnode = head.next
head.next = temp.next
temp.next = head
head = nextnode
return temp.next
leetcode206的更多相关文章
- 【LeetCode206】Reverse Linked List★
题目描述: 解题思路: 关于单链表的反转有迭代和递归两种方法,方法不在多,本文主要介绍迭代的方法. 迭代的方法,要使用三个指针,需要注意一点的是指针的初始化,对第一个指针初始化为pre=null,第二 ...
- leetcode206 反转链表 两种做法(循环,递归)
反转链表 leetcode206 方法1 循环 public ListNode reverseList(ListNode head) { if (head == null || head.next = ...
- 【数据结构】单链表介绍及leetcode206题反转单链表python实现
题目传送门:https://leetcode-cn.com/problems/reverse-linked-list/ 文章目录 单链表介绍 链表 概念 种类 优缺点 单链表(slist) leetc ...
- 链表反转leetcode206
最近准备结束自己的科研生涯,准备要开始找工作了,准备在LEETCODE刷刷题...刷的前40题全部用python刷的,各种调包速度奇快,后被师哥告知这样没意义,于是准备开始回归C++,Python用的 ...
- Leetcode-206 Reverse Linked List
#206. Reverse Linked List Reverse a singly linked list. /** * Definition for singly-linked list. * ...
- 每天一道LeetCode--206. Reverse Linked List
Reverse a singly linked list. package cn.magicdu; import cn.magicdu.extra.ListNode; public class _20 ...
- [Swift]LeetCode206. 反转链表 | Reverse Linked List
Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5->4-> ...
- LeetCode-206.ReverseLinked List
Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5->4-> ...
- leetcode206. 反转链表
1:迭代法 假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3. 在遍历列表时,将当前节点的 next 指针改为指向前一个元素.由于节点没有引用其上一个节点,因此必 ...
随机推荐
- Java语法基础学习DayFifteen(IO续)
一.缓冲流(处理流的一种) 1.作用:可以提高文件操作的效率 2.使用BufferedInputStream和BufferedOutputStream实现非文本文件的复制 特点:flush()方法 代 ...
- TestLink测试管理工具的使用举例—第二篇
本篇博客接上面TestLink测试管理工具的使用举例—第一篇的内容继续讲解如何使用TestLink工具进行测试管理. 创建一个名为“购物V1.1系统测试”的测试计划. 2.2版本管理 点击主页“测试计 ...
- java学习笔记38(sql注入攻击及解决方法)
上一篇我们写了jdbc工具类:JDBCUtils ,在这里我们使用该工具类来连接数据库, 在之前我们使用 Statement接口下的executeQuery(sql)方法来执行搜索语句,但是这个接口并 ...
- net start/stop mysql access denied.拒绝访问
转载:Mysql net start mysql启动,提示发生系统错误 5 拒绝访问 解决之道 为什么会出现这个问题呢?经过一番思考找到原因了,是因为当前用户的操作权限太低了,出了问题 出错问题截屏如 ...
- Linux_x86下NX与ASLR绕过技术
本文介绍Linux_x86下NX与ASLR绕过技术,并对GCC的Stack Canaries保护技术进行原理分析. 本文使用存在漏洞代码如下: /* filename : sof.c */ #incl ...
- Dubbo的全局Filter配置
前言: 之前也写过dubbo的filter的文章, 后来和同事也有过交流, 才发生自己对dubbo的filter的机制, 还是存在一些误解, 尤其是自定义filter的定位, 不是那么清晰. 本文主要 ...
- 深入理解synchronized方法同步的是方法还是对象?
一.运用synchronized关键字 首先我们来看看一个多线程中线程不安全的列子 代码如下: 共享数据类: public class NotSynchronizated extends Thread ...
- flask中自定义过滤器
第一种方法: 1,第一步:自定义过滤器函数 # 自定义一个函数,将list里面的数据进行排序 def list_sort(list) return list.sort() 2.第二步:注册过滤器 第一 ...
- Java基于opencv实现图像数字识别(一)
Java基于opencv实现图像数字识别(一) 最近分到了一个任务,要做数字识别,我分配到的任务是把数字一个个的分开:当时一脸懵逼,直接百度java如何分割图片中的数字,然后就百度到了用Buffere ...
- OneStopEnglish corpus: A new corpus for automatic readability assessment and text simplification-paper
这篇论文的related work非常详尽地介绍了各种readability的语料 abstract这个paper描述了onestopengilish这个三个level的文本语料的收集和整理,阐述了再 ...