Java实现单链表翻转实例代码

2025-05-29 0 35

Java实现单链表反转,递归和非递归两种形式

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83
/**

* 反转单链表

*/

/** * 定义链表

*

* @author 16026

*

*/

class Node {

int val;

Node next;

public Node(int val) {

this.val = val;

}

}

public class ReverseList {

/**

* 反转链表

*

* @param head

* @return

*/

public static Node reverseList(Node head) {

if (head == null || head.next == null) {

return head;

}

Node reHead = null;// 定义新链表头结点

while (head != null) {

Node cur = head.next;// 记录下一个节点

head.next = reHead;// 将rehead节点连接到head节点上

reHead = head;// 让rehead指向head

head = cur;// 将head指向下一个节点

}

return reHead;

}

/**

* 递归反转链表

*

* @param head

* @return

*/

public static Node reverseList2(Node head) {

if (head == null || head.next == null)

return head;

Node rehead = reverseList2(head.next);

head.next.next = head;// 将头节点置于末端

head.next = null;// 防止链表循环

return rehead;

}

/**

* 打印链表

*

* @param head

*/

public static void printList(Node head) {

if (head == null)

return;

while (head != null) {

System.out.print(head.val + " ");

head = head.next;

}

}

/**

* 测试

*

* @param args

*/

public static void main(String[] args) {

Node n1 = new Node(1);

Node n2 = new Node(2);

Node n3 = new Node(3);

Node n4 = new Node(4);

Node n5 = new Node(5);

n1.next = n2;

n2.next = n3;

n3.next = n4;

n4.next = n5;

// Node rehead = reverseList(n1);

Node rehead = reverseList2(n1);

printList(rehead);

}

}

运行结果如下:

Java实现单链表翻转实例代码

以上所述是小编给大家介绍的Java实现单链表翻转实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

原文链接:http://blog.csdn.net/qq_21150865/article/details/65629749

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java实现单链表翻转实例代码 https://www.kuaiidc.com/118224.html

相关文章

猜你喜欢
发表评论
暂无评论