[{"data":1,"prerenderedAt":324},["ShallowReactive",2],{"post-algorithm-learning-004-list":3,"home":302},{"id":4,"title":5,"body":6,"date":292,"description":293,"extension":294,"meta":295,"navigation":142,"path":296,"seo":297,"stem":298,"tags":299,"__hash__":301},"blog\u002Fblog\u002Falgorithm-learning-004-list.md","链表",{"type":7,"value":8,"toc":286},"minimark",[9,51,55,115,118,254,257,275,278,282],[10,11,16],"pre",{"className":12,"code":13,"language":14,"meta":15,"style":15},"language-cpp shiki shiki-themes github-light github-dark","struct ListNode {\n  int val;\n  ListNode *next;\n  ListNode(int x): val(x), next(nullptr) {}\n};\n","cpp","",[17,18,19,27,33,39,45],"code",{"__ignoreMap":15},[20,21,24],"span",{"class":22,"line":23},"line",1,[20,25,26],{},"struct ListNode {\n",[20,28,30],{"class":22,"line":29},2,[20,31,32],{},"  int val;\n",[20,34,36],{"class":22,"line":35},3,[20,37,38],{},"  ListNode *next;\n",[20,40,42],{"class":22,"line":41},4,[20,43,44],{},"  ListNode(int x): val(x), next(nullptr) {}\n",[20,46,48],{"class":22,"line":47},5,[20,49,50],{},"};\n",[52,53,54],"h2",{"id":54},"链表反转",[10,56,58],{"className":12,"code":57,"language":14,"meta":15,"style":15},"ListNode* reverse_list(ListNode *head) {\n  ListNode *pre = nullptr, *curr = head, *next = nullptr;\n  while(curr) {\n    next = curr->next;\n    curr->next = pre;\n    pre = curr;\n    curr = next;\n  }\n  return pre;\n}\n",[17,59,60,65,70,75,80,85,91,97,103,109],{"__ignoreMap":15},[20,61,62],{"class":22,"line":23},[20,63,64],{},"ListNode* reverse_list(ListNode *head) {\n",[20,66,67],{"class":22,"line":29},[20,68,69],{},"  ListNode *pre = nullptr, *curr = head, *next = nullptr;\n",[20,71,72],{"class":22,"line":35},[20,73,74],{},"  while(curr) {\n",[20,76,77],{"class":22,"line":41},[20,78,79],{},"    next = curr->next;\n",[20,81,82],{"class":22,"line":47},[20,83,84],{},"    curr->next = pre;\n",[20,86,88],{"class":22,"line":87},6,[20,89,90],{},"    pre = curr;\n",[20,92,94],{"class":22,"line":93},7,[20,95,96],{},"    curr = next;\n",[20,98,100],{"class":22,"line":99},8,[20,101,102],{},"  }\n",[20,104,106],{"class":22,"line":105},9,[20,107,108],{},"  return pre;\n",[20,110,112],{"class":22,"line":111},10,[20,113,114],{},"}\n",[52,116,117],{"id":117},"合并两个有序链表",[10,119,121],{"className":12,"code":120,"language":14,"meta":15,"style":15},"ListNode* merge_list(ListNode* l1, ListNode* l2) {\n  if(l1 == nullptr)  return l2;\n  if(l2 == nullptr)  return l1;\n\n  ListNode* head = (l1->val \u003C= l2->val) ? l1 : l2;\n  ListNode* pre = head;\n  ListNode* curr1 = head->next;\n  ListNode* curr2 = (head == l2) ? l1 : l2;\n\n  while(curr1 != nullptr && curr2 != nullptr) {\n    if(curr1->val \u003C= curr2->val) {\n      pre->next = curr1;\n      curr1 = curr1->next;\n    } else {\n      pre->next = curr2;\n      curr2 = curr2->next;\n    }\n    pre = pre->next;\n  }\n\n  if(curr1 == nullptr) pre->next = curr2;\n  if(curr2 == nullptr) pre->next = curr1;\n  return head;\n}\n",[17,122,123,128,133,138,144,149,154,159,164,168,173,179,185,191,197,203,209,215,221,226,231,237,243,249],{"__ignoreMap":15},[20,124,125],{"class":22,"line":23},[20,126,127],{},"ListNode* merge_list(ListNode* l1, ListNode* l2) {\n",[20,129,130],{"class":22,"line":29},[20,131,132],{},"  if(l1 == nullptr)  return l2;\n",[20,134,135],{"class":22,"line":35},[20,136,137],{},"  if(l2 == nullptr)  return l1;\n",[20,139,140],{"class":22,"line":41},[20,141,143],{"emptyLinePlaceholder":142},true,"\n",[20,145,146],{"class":22,"line":47},[20,147,148],{},"  ListNode* head = (l1->val \u003C= l2->val) ? l1 : l2;\n",[20,150,151],{"class":22,"line":87},[20,152,153],{},"  ListNode* pre = head;\n",[20,155,156],{"class":22,"line":93},[20,157,158],{},"  ListNode* curr1 = head->next;\n",[20,160,161],{"class":22,"line":99},[20,162,163],{},"  ListNode* curr2 = (head == l2) ? l1 : l2;\n",[20,165,166],{"class":22,"line":105},[20,167,143],{"emptyLinePlaceholder":142},[20,169,170],{"class":22,"line":111},[20,171,172],{},"  while(curr1 != nullptr && curr2 != nullptr) {\n",[20,174,176],{"class":22,"line":175},11,[20,177,178],{},"    if(curr1->val \u003C= curr2->val) {\n",[20,180,182],{"class":22,"line":181},12,[20,183,184],{},"      pre->next = curr1;\n",[20,186,188],{"class":22,"line":187},13,[20,189,190],{},"      curr1 = curr1->next;\n",[20,192,194],{"class":22,"line":193},14,[20,195,196],{},"    } else {\n",[20,198,200],{"class":22,"line":199},15,[20,201,202],{},"      pre->next = curr2;\n",[20,204,206],{"class":22,"line":205},16,[20,207,208],{},"      curr2 = curr2->next;\n",[20,210,212],{"class":22,"line":211},17,[20,213,214],{},"    }\n",[20,216,218],{"class":22,"line":217},18,[20,219,220],{},"    pre = pre->next;\n",[20,222,224],{"class":22,"line":223},19,[20,225,102],{},[20,227,229],{"class":22,"line":228},20,[20,230,143],{"emptyLinePlaceholder":142},[20,232,234],{"class":22,"line":233},21,[20,235,236],{},"  if(curr1 == nullptr) pre->next = curr2;\n",[20,238,240],{"class":22,"line":239},22,[20,241,242],{},"  if(curr2 == nullptr) pre->next = curr1;\n",[20,244,246],{"class":22,"line":245},23,[20,247,248],{},"  return head;\n",[20,250,252],{"class":22,"line":251},24,[20,253,114],{},[52,255,256],{"id":256},"链表相加",[10,258,260],{"className":12,"code":259,"language":14,"meta":15,"style":15},"ListNode* add_two_number(ListNode* l1, ListNode* l2) {\n\n}\n",[17,261,262,267,271],{"__ignoreMap":15},[20,263,264],{"class":22,"line":23},[20,265,266],{},"ListNode* add_two_number(ListNode* l1, ListNode* l2) {\n",[20,268,269],{"class":22,"line":29},[20,270,143],{"emptyLinePlaceholder":142},[20,272,273],{"class":22,"line":35},[20,274,114],{},[52,276,277],{"id":277},"划分链表",[279,280,281],"p",{},"待续",[283,284,285],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":15,"searchDepth":29,"depth":29,"links":287},[288,289,290,291],{"id":54,"depth":29,"text":54},{"id":117,"depth":29,"text":117},{"id":256,"depth":29,"text":256},{"id":277,"depth":29,"text":277},"2025-11-28","笔记","md",{},"\u002Fblog\u002Falgorithm-learning-004-list",{"title":5,"description":293},"blog\u002Falgorithm-learning-004-list",[300],"算法","aZmvJ9xzwGXFXYihOPNgHQuyxlPJh5suWEOjrJ91Wv0",{"id":303,"title":304,"avatar":305,"body":306,"description":310,"extension":294,"meta":311,"name":313,"navigation":142,"path":314,"seo":315,"social":316,"stem":322,"__hash__":323},"home\u002Fhome.md","Home","https:\u002F\u002Fstarrobe-blog.oss-cn-beijing.aliyuncs.com\u002Favatar\u002Fjashinchan.jpg",{"type":7,"value":307,"toc":308},[],{"title":15,"searchDepth":29,"depth":29,"links":309},[],"Programming enthusiast, maybe.",{"layout":312},"page","阿东","\u002Fhome",{"title":304,"description":310},{"github":317,"email":318,"bilibili":319,"qq":320,"rss":321},"https:\u002F\u002Fgithub.com\u002Fstarrobe","mailto:starrobe@163.com","https:\u002F\u002Fspace.bilibili.com\u002F382631863","tencent:\u002F\u002Fmessage\u002F?uin=2604335528","\u002Ffeed.xml","home","XHOrpn2fXb8x87SMsqZTGaANCESyH9qV8TDm8rnQewI",1777128585656]