翻转单链表是出现在 各大公司 的面试中频率最高的一题了!!! 有 头插法 和 递归法 两种实现方法,一次性写出 bug free 的代码不是件容易的事! 具体看下面的代码和注释 如下: 1 /** 2 * Definition for singly-linked list. 3 * struct L ...
分类:
其他好文 时间:
2020-11-19 13:01:57
阅读次数:
19
一:解题思路 链表是递归定义的,所以关于链表的大部分问题也可以用递归来解决。当然也可以不用递归来解决这个问题。这里来介绍2种方法,一种是递归方法,一种是非递归的方法。 二:完整代码示例 (C++版和Java版) 递归版C++ class Solution { public: ListNode* re ...
分类:
其他好文 时间:
2020-03-08 22:00:11
阅读次数:
76
作为面试中最最最常考的链表题之一,翻转单链表。有以下两种解法: 例: 输入 1->2->3->4 输出 4->3->2->1 Node类定义如下 class Node { int value; Node next; public Node(int value, Node next) { this.v ...
分类:
编程语言 时间:
2020-02-09 23:55:03
阅读次数:
138
题目链接 题目大意:翻转单链表。要求用递归和非递归两种方法。 法一:非递归。直接对原单链表进行循环操作,且不新开辟空间,用头插法即可。代码如下(耗时0ms): 1 public ListNode reverseList(ListNode head) { 2 if(head == null) { 3 ...
分类:
其他好文 时间:
2018-05-11 12:57:31
阅读次数:
101
玩指针是许多算法的精髓,就是要像六脉神剑一样,指针乱指一通之后,内存中的数据变得井然有序。 操作指针真的是太好玩了。下面出几道题。 一、不用额外空间翻转单链表 给定一个单链表,要求翻转之。 二、两个无环单链表求第一个公共结点 方法非常简单:求出两个链表长度之差,记为x;然后让较长的链表先走x步;最后 ...
分类:
其他好文 时间:
2018-03-13 23:53:58
阅读次数:
194
电话面 时长:30m 1. 说一下对浏览器缓存的理解; 2. 说一下MySQL优化; 3. 说一下redis; 4. 说一下从输入url到返回都发生了什么; 5. 域名怎么解析的; 一面 1h 1. 编程实现翻转单链表; 2. MySQL中varchar和char的区别; 3. HTTP协议常用的状 ...
分类:
移动开发 时间:
2017-12-09 22:19:31
阅读次数:
233
翻转单链表(要注意的是是否含有头结点):思路一:每次将第一个节点后的那个节点放到第一个位置。若无头结点,则额外需要一个指针记录首节点。代码:/** * Definition for singly-linked list. * public class ListNode { * int val...
分类:
编程语言 时间:
2015-05-14 18:19:12
阅读次数:
218
#include
using namespace std;struct Node
{
int val;
struct Node *next;
Node(int x = int()):val(x),next(NULL){}
};struct List
{
List()
{
head=NULL;
}
void...
分类:
编程语言 时间:
2015-05-09 13:24:55
阅读次数:
151
/**
* @author luochengcheng
* 定义一个单链表
*/
class Node {
//变量
private int record;
//指向下一个对象
private Node nextNode;
public Node(int record) {
su...
分类:
编程语言 时间:
2015-04-09 08:59:09
阅读次数:
163
单链表翻转比如有如下链表:
需要按照C B A 输出,我们可以有好几种方法:
package org.andy.test;
import java.util.ArrayList;
import java.util.List;
/**
* @author andy
* @version:2015-2-4 上午9:41:12
*
*
*/
public clas...
分类:
编程语言 时间:
2015-03-19 18:27:29
阅读次数:
190