Java 算法 之 (链表 !!!)
AI-摘要
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
反转链表:
第一种解法 :
代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
ListNode pree = null; // 存储的上一个节点
ListNode curread = head; // 当前操作起始节点
while(curread !=null) {
ListNode nextNode = curread.next; // 存储下一个节点
curread.next = pree; // 反转,指向上一个节点
pree = curread; // 前移动,下一个节点指向的位置
curread = nextNode; // 前移,下一个操作的节点
}
return pree;
}
}
核心: 记住当前得节点是什么? 上一个节点又是什么? 下一个节点是什么? 然后遍历即可
第二种解法:
头插法:
// 头插法
public ListNode reverseList(ListNode head) {
// 处理空链表的情况
if (head == null) {
return null;
}
ListNode pree = new ListNode(-1);
pree.next = head;
ListNode curred = head;
while(curred.next !=null) {
ListNode next = curred.next; // 存储下一个节点
curred.next = next.next; // 当前节点连接下一个节点
next.next = pree.next; // 下一个节点关联头节点
pree.next = next; // 更新当前的头节点
}
return pree.next;
}异曲同工之妙:
同理:
反转字符串:
地址: https://leetcode.cn/problems/reverse-string/description/
代码:
public void reverseString(char[] s) {
for(int i = 0 , j = s.length-1; i <=j ; i++,j--) {
char tep = s[i];
s[i] = s[j];
s[j] = tep;
}
}
同理: 第二套一致:
class Solution {
public void reverseString(char[] s) {
int left = 0 , right = s.length-1;
while(left < right) {
char tep = s[left];
s[left] = s[right];
s[right] = tep;
left++;
right--;
}
}
}反转字符串二
地址: https://leetcode.cn/problems/reverse-string-ii/description/
代码:
class Solution {
public String reverseStr(String s, int k) {
char[] arr = s.toCharArray();
for (int i = 0; i < arr.length; i += 2 * k) {
int left = i;
int right = Math.min(i + k - 1, arr.length - 1); // 确定前k个字符的右边界
reverse(arr, left, right);
}
return new String(arr);
}
private void reverse(char[] arr, int left, int right) {
while (left < right) {
char temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
}下篇见把 !!!
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员阿政
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果