目录
反转字符串的单词:如何在原字符串上翻转字符串(如将 "i am student" 翻转为 "student am i"),要求空间复杂度为 O (1)?(字节跳动、美团、滴滴)
压缩字符串题wsssgkeghh 变为 w3sgkeg2h(云从科技)
怎么判断两个链表是否相交?怎么优化?(字节跳动、货拉拉)
判断两个链表是否相交可以采用多种方法。
一种方法是使用双指针。首先分别遍历两个链表,得到两个链表的长度。然后让长链表的指针先走两个链表长度差的步数。之后,同时移动两个链表的指针,每次比较两个指针是否指向相同的节点。如果指向相同节点,那么这两个链表相交;如果直到指针都走到链表末尾还没有相同节点,那么这两个链表不相交。
#include <iostream>
using namespace std;
// ListNode 定义
class ListNode {
public:
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
class Solution {
public:
bool isIntersect(ListNode* headA, ListNode* headB) {