链表操作之翻转链表以及求倒数第K个节点
来源:互联网 发布:java 日期相差天数 编辑:程序博客网 时间:2024/06/10 03:25
翻转链表没什么说的,就是注意保存上一个节点和下一个节点的信息。
public Node reverseList(Node head){ Node pReversedHead=null; Node pNode=head; Node pPrev=null; while(pNode!=null){ Node pNext=pNode.next; if(pNext==null) //特别注意链表中要考虑下一个是否为空 pReversedHead=pNode; pNode.next=pPrev; pPrev=pNode; pNode=pNext; } return pReversedHead; }
求倒数的K个节点,先设置一个指针走到第K-1的位置,再设置一个指针从头开始,然后两个指针一起走,最后就是倒数第K个指针啦。
public Node reGetKthNode(Node head,int k){ if(head==null||k==0) return null; Node pBegind=null; Node paHead=head; for(int i=0;i<k-1;i++){ //循环到头结点以后的第K个节点 if(paHead!=null) paHead=paHead.next; else return null; } pBegind=head; while(paHead!=null){ paHead=paHead.next; pBegind=pBegind.next; } return pBegind; }
合并两个有序的链表
public Node mergeSortedListRec(Node head1,Node head2){ if(head1==null)return head2; if(head2==null)return head1; if(head1.value>head2.value){ head2.next=mergeSortedListRec(head2.next,head1); return head2; } else{ head1.next=mergeSortedListRec(head1.next,head2); return head1; }
0 0
- 链表操作之翻转链表以及求倒数第K个节点
- 求单向链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第K个节点
- 链表倒数第k个节点
- 链表倒数第k个节点
- 链表倒数第K个节点
- 链表之删除单链表倒数第K个节点
- 链表之删除双链表倒数第K个节点
- 【剑指offer】之链表倒数第k个节点
- 翻转链表查找链表的倒数第k个节点位运算加法
- 输出单向链表倒数第k个节点,倒数第0个指向尾节点.
- 面试100题:13.求单向链表倒数第k个节点
- 面试100题:13.求单向链表倒数第k个节点
- 求单向链表中的倒数第K个节点2
- 逆置、翻转链表/查找单链表的倒数第k个节点/A+B不使用四则运算++ -- 等
- Android使用HttpUrlConnection请求服务器发送数据详解
- ActiveMQ配置 连接activemq
- python 连接mysql 执行命令
- VC中查看键盘的虚拟键值
- 【HDU 1599 find the mincost route】
- 链表操作之翻转链表以及求倒数第K个节点
- swift蛋疼的初始化过程
- JMS入门(二)--JMS简单例子
- Java反射机制
- docker学习4--容器
- Tomcat配置JNDI数据源
- 选择排序
- 键树
- C# 多肽