LINTCODE——交换链表当中两个节点
来源:互联网 发布:smtp.gmail.com 端口 编辑:程序博客网 时间:2024/05/17 13:43
LINTCODE——交换链表当中两个节点
说明:主要是考查操作链表,如果直接改变节点的权值就失去了做题的意义,代码首先查找节点所在的位置,然后交换节点,注意有一个为头节点的特殊情况;
ListNode * swapNodes(ListNode * head, int v1, int v2) { // write your code here if(head == NULL || v1 == v2) return head; //查找v1,v2的的所在位置 ListNode *v1Node = head , *v2Node = head , *v1Nodepre = head ; ListNode *v2Nodepre = head , *curNode = head; bool bv1 = false , bv2 = false ; //给两个整数标记,方便之后的处理(只要是处理 V1 值所在位置在V2的后面) int iv1 = 0 , iv2 = 0; while( !(bv1 && bv2) && curNode != NULL) { if(curNode -> val == v1) { bv1 = true; } if(curNode -> val == v2) { bv2 = true; } if(!bv1) { v1Nodepre = v1Node ; v1Node = v1Node -> next ; iv1++; } if(!bv2) { v2Nodepre = v2Node ; v2Node = v2Node -> next; iv2++; } curNode = curNode -> next; } //如果没找到,直接返回 if( !(bv1 && bv2) ) return head; //按先后排序v1,v2 if(iv1 > iv2) { ListNode *tempNode = v1Node , *vNodepre = v1Nodepre; v1Node = v2Node ; v1Nodepre = v2Nodepre; v2Node = tempNode ; v2Nodepre = vNodepre; } //处理节点,注意头结点的特殊情况 ListNode *v2NextNode = v2Node -> next; v2Nodepre -> next = v1Node; v2Node -> next = v1Node -> next; v1Node -> next = v2NextNode; if(v1Node == head) { return v2Node; } else v1Nodepre -> next = v2Node; return head; }};
阅读全文
0 0
- LINTCODE——交换链表当中两个节点
- LintCode 交换链表当中两个节点
- LintCode:交换链表当中两个节点
- LintCode-交换链表当中两个节点
- LintCode 交换链表当中两个节点
- LintCode:交换链表当中两个节点
- 交换链表当中两个节点-LintCode
- lintcode(511)交换链表当中两个节点
- 交换链表当中两个节点
- 511- 交换链表当中两个节点
- Java实现-交换链表当中的两个节点
- lintcode——两两交换链表中的节点
- 511.Swap Two Nodes in Linked List-交换链表当中两个节点(中等题)
- LintCode:两两交换链表中的节点
- LintCode 两两交换链表中的节点
- 两两交换链表中的节点-LintCode
- Lintcode 451.两两交换链表中的节点
- LintCode-两两交换链表中的节点
- 测试一下,打扰了!!!!!!
- MyBatis的配置文件
- 九度 题目1162:I Wanna Go Home
- 关于Form_Load和Public Form()那些事
- 最全Pycharm教程(43)——Pycharm扩展功能之UML类图使用
- LINTCODE——交换链表当中两个节点
- 期望与概率
- 八数码问题(hash+bfs)
- HDU 5924 Mr. Frog’s Problem
- ccf 炉石传说
- Android面试题 你经常写复杂的界面,那Android刷新Ui有什么特点?在这个过程中做哪些操作会出现问题
- C#中的is和as操作符
- linux 打印相关 应用的进程,根据筛选条件 获取进程id 执行jstack 指令
- django验证码框架(django-simple-captcha)