链表问题
- 单链表:value/next
- 双链表:value/last/next
单双链表的反转
给定一个单链表的头head,完成链表的逆序调整
给定一个双链表的头head,完成链表的逆序调整
可达性:head一开始指向头,反转后,应该让head抓住刚才的尾(新的头),否则jvm会释放
代码:
public static Node reverseLinkedList(Node head) { Node pre = null; Node next = null; while (head != null) { next = head.next; head.next = pre; pre = head; head = next; } return pre; }
例题:两个链表相加,给定两个链表的头节点head1和head2,认为从左到右是某个数字从低位到高位,返回相加之后的链表
- 例子:
4 -> 3 -> 6
2 -> 5 -> 3
- 返回:
6 -> 8 -> 9
- 解释:
634 + 352 = 986
- 例子:
例题:两个有序链表的合并,给定两个有序链表的头节点head1和head2,返回合并之后的大链表,要求依然有序
- 例子
1 -> 3 -> 3 -> 5 -> 7
2 -> 2 > 3 -> 3-> 7
- 返回
1 -> 2 -> 2 -> 3 -> 3 -> 3 -> 3 -> 5 -> 7
- 例子
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 963614756@qq.com。