《算法之美》例题

结构之法——字符串及链表的探索

【3.4 拓展问题】编写一个函数,给定一个链表的头指针,要求只遍历一次,将单链表中的元素顺序反转过来。

思路:遍历每一个结点,当前结点指向上一个节点的地址。

伪代码如下:

1 node *prev_node = null;//上一个节点
2 node *now_node;//头结点
3 while((*now_node)!=null){
4     node *temp = now_node;
5     now_node = now_node->next;
6     temp->next = prev_node;
7     prev_node = temp;
8 }

【3.6 判断两个链表是否相交】一个大的系统中,如果出现两个链表相交的情况,而且释放了其中一个链表的所有节点,那样就会造成信息的丢失,并且另一个与之相交的链表也会受到影响,这是我们不希望看到的。

解法一:直接遍历

解法二:根据上图可以发现链表相交的特点最后的节点相同,判断两个链表的最后一个节点是否相同。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏专注 Java 基础分享

泛型的基本原理

泛型是 JDK1.5 的一个新特性,其实就是一个『语法糖』,本质上就是编译器为了提供更好的可读性而提供的一种小「手段」,虚拟机层面是不存在所谓『泛型』的概念的。

1070
来自专栏测试开发架构之路

总结了一些指针易出错的常见问题(四)

指针与结构体 简介:我们可以使用C的结构体来表示数据结构元素,比如链表或树的节点,指针是把这些元素联系到一起的纽带。 typedef struct _pers...

2977
来自专栏面朝大海春暖花开

java泛型理解。代码更明了。

在工作中,相对于现有的项目源码的数据库操作层,无论是mybatis,hibernate或者是自己封装的baseModel层,都会使用到泛型。

852
来自专栏日常分享

数组、List和ArrayList的区别

 有些知识点可能平时一直在使用,不过实际开发中我们可能只是知其然不知其所以然,所以经常的总结会对我们的提高和进步有很大的帮助,这里记录自己在工作之余的问题,持续...

2122
来自专栏aCloudDeveloper

经典排序之 插入排序

Author: bakari  Date: 2012.7.21 排序算法有很多种,每一种在不同的情况下都占有一席之地。关于排序算法我分“经典排序之”系列分别述之...

1988
来自专栏IT可乐

Java中的增强 for 循环 foreach

  foreach 是 Java 中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理...

2109
来自专栏小樱的经验随笔

C++STL中set的使用策略(详解)

set的英文意思是“集合”, 集合都不陌生吧,集合的特点有唯一性,即:每一个元素只有一个,所以set可以用来“去重”操作,set还有默认的排序。  1、头文件...

2705
来自专栏闵开慧

Java中Arraylist与linkedlist的区别

List: 有顺序的,元素可以重复 遍历:for 迭代 排序:Comparable Comparator Collections.sort() Array...

36612
来自专栏Java3y

泛型就这么简单

1674
来自专栏龙首琴剑庐

Java集合框架一览笔录

1、集合概念 集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,ja...

2967

扫码关注云+社区

领取腾讯云代金券