目录
交换节点的值
❤❤题目描述:
1.给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题
❤❤题目分析:
需要交换两个相邻节点的值,我们需要定义一个虚拟节点tmp来实现交换两个数值,当交换完两个数值后,让cur=cur.next.next,继续进行交换,我们需要在什么情况下需要停止交换呢?此时需要分链表的节点是奇数还是偶数,当为偶数时,cur != null,进入循环,当为奇数时,cur.next != null,进入循环
❤❤代码演示:
class Solution { public ListNode swapPairs(ListNode head) { ListNode tmp= new ListNode(-1);//定义一个虚拟节点 ListNode cur = head; if(head == null){ return null; } if(head.next == null){ return head; } while(cur != null && cur.next!= null){//当为奇数和偶数情况时 tmp.val = cur.val; cur.val = cur.next.val; cur.next.val = tmp.val;//交换两个节点的值 cur = cur.next.next;//让cur一次走两步 } return head; } }
两数相加
❤❤题目描述:
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的