[{"data":1,"prerenderedAt":321},["ShallowReactive",2],{"term-r\u002Frecursion":3,"related-r\u002Frecursion":307},{"id":4,"title":5,"acronym":6,"body":7,"category":288,"description":289,"difficulty":290,"extension":291,"letter":292,"meta":293,"navigation":168,"path":294,"related":295,"seo":301,"sitemap":302,"stem":305,"subcategory":6,"__hash__":306},"terms\u002Fterms\u002Fr\u002Frecursion.md","Recursion",null,{"type":8,"value":9,"toc":282},"minimark",[10,15,19,23,26,30,271,275,278],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Recursion is when a function calls itself to solve a smaller version of the same problem, like a set of Russian nesting dolls. You open a doll (call the function), inside is a smaller doll (call it again), and you keep going until you reach the tiniest doll (the base case). Without the tiny doll, you get a stack overflow.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Recursion is a technique where a function calls itself with a modified argument, solving progressively simpler sub-problems until reaching a base case that does not recurse. Recursive solutions are elegant for hierarchical data (trees, graphs), divide-and-conquer algorithms (merge sort, quicksort), and backtracking problems. Each call adds a frame to the call stack, so deep recursion risks stack overflow.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Classic recursion: factorial\nfunction factorial(n) {\n  if (n \u003C= 1) return 1;      \u002F\u002F BASE CASE — stop here!\n  return n * factorial(n - 1); \u002F\u002F recursive call with smaller n\n}\nfactorial(5); \u002F\u002F 5 * 4 * 3 * 2 * 1 = 120\n\n\u002F\u002F Recursive tree traversal:\nfunction sumTree(node) {\n  if (!node) return 0;  \u002F\u002F base case: null node = 0\n  return node.value + sumTree(node.left) + sumTree(node.right);\n}\n","javascript","",[38,39,40,49,74,109,139,145,163,170,176,193,217,266],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F Classic recursion: factorial\n",[41,50,52,56,60,64,68,71],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","function",[41,57,59],{"class":58},"s2Zo4"," factorial",[41,61,63],{"class":62},"sMK4o","(",[41,65,67],{"class":66},"sHdIc","n",[41,69,70],{"class":62},")",[41,72,73],{"class":62}," {\n",[41,75,77,81,85,88,91,95,98,101,103,106],{"class":43,"line":76},3,[41,78,80],{"class":79},"s7zQu","  if",[41,82,84],{"class":83},"swJcz"," (",[41,86,67],{"class":87},"sTEyZ",[41,89,90],{"class":62}," \u003C=",[41,92,94],{"class":93},"sbssI"," 1",[41,96,97],{"class":83},") ",[41,99,100],{"class":79},"return",[41,102,94],{"class":93},[41,104,105],{"class":62},";",[41,107,108],{"class":47},"      \u002F\u002F BASE CASE — stop here!\n",[41,110,112,115,118,121,123,125,127,130,132,134,136],{"class":43,"line":111},4,[41,113,114],{"class":79},"  return",[41,116,117],{"class":87}," n",[41,119,120],{"class":62}," *",[41,122,59],{"class":58},[41,124,63],{"class":83},[41,126,67],{"class":87},[41,128,129],{"class":62}," -",[41,131,94],{"class":93},[41,133,70],{"class":83},[41,135,105],{"class":62},[41,137,138],{"class":47}," \u002F\u002F recursive call with smaller n\n",[41,140,142],{"class":43,"line":141},5,[41,143,144],{"class":62},"}\n",[41,146,148,151,153,156,158,160],{"class":43,"line":147},6,[41,149,150],{"class":58},"factorial",[41,152,63],{"class":87},[41,154,155],{"class":93},"5",[41,157,70],{"class":87},[41,159,105],{"class":62},[41,161,162],{"class":47}," \u002F\u002F 5 * 4 * 3 * 2 * 1 = 120\n",[41,164,166],{"class":43,"line":165},7,[41,167,169],{"emptyLinePlaceholder":168},true,"\n",[41,171,173],{"class":43,"line":172},8,[41,174,175],{"class":47},"\u002F\u002F Recursive tree traversal:\n",[41,177,179,181,184,186,189,191],{"class":43,"line":178},9,[41,180,55],{"class":54},[41,182,183],{"class":58}," sumTree",[41,185,63],{"class":62},[41,187,188],{"class":66},"node",[41,190,70],{"class":62},[41,192,73],{"class":62},[41,194,196,198,200,203,205,207,209,212,214],{"class":43,"line":195},10,[41,197,80],{"class":79},[41,199,84],{"class":83},[41,201,202],{"class":62},"!",[41,204,188],{"class":87},[41,206,97],{"class":83},[41,208,100],{"class":79},[41,210,211],{"class":93}," 0",[41,213,105],{"class":62},[41,215,216],{"class":47},"  \u002F\u002F base case: null node = 0\n",[41,218,220,222,225,228,231,234,236,238,240,242,245,247,250,252,254,256,258,261,263],{"class":43,"line":219},11,[41,221,114],{"class":79},[41,223,224],{"class":87}," node",[41,226,227],{"class":62},".",[41,229,230],{"class":87},"value",[41,232,233],{"class":62}," +",[41,235,183],{"class":58},[41,237,63],{"class":83},[41,239,188],{"class":87},[41,241,227],{"class":62},[41,243,244],{"class":87},"left",[41,246,97],{"class":83},[41,248,249],{"class":62},"+",[41,251,183],{"class":58},[41,253,63],{"class":83},[41,255,188],{"class":87},[41,257,227],{"class":62},[41,259,260],{"class":87},"right",[41,262,70],{"class":83},[41,264,265],{"class":62},";\n",[41,267,269],{"class":43,"line":268},12,[41,270,144],{"class":62},[11,272,274],{"id":273},"when-youll-hear-this","When You'll Hear This",[16,276,277],{},"\"Use recursion to traverse the file tree.\" \u002F \"You forgot the base case — that's why it's stack overflowing.\"",[279,280,281],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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":36,"searchDepth":51,"depth":51,"links":283},[284,285,286,287],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":273,"depth":51,"text":274},"general","Recursion is when a function calls itself to solve a smaller version of the same problem, like a set of Russian nesting dolls.","intermediate","md","r",{},"\u002Fterms\u002Fr\u002Frecursion",[296,297,298,299,300],"Stack Overflow","Algorithm","Tree","Loop","Base Case",{"title":5,"description":289},{"changefreq":303,"priority":304},"weekly",0.7,"terms\u002Fr\u002Frecursion","vZec81PXSI9ZN9JygSB_C00S6B2r4hVUOASNdtXOdkI",[308,312,315,318],{"title":297,"path":309,"acronym":6,"category":288,"difficulty":310,"description":311},"\u002Fterms\u002Fa\u002Falgorithm","beginner","An algorithm is just a step-by-step recipe for solving a problem. Sort a list? There is an algorithm. Find the shortest path? Algorithm. Make a sandwich?",{"title":299,"path":313,"acronym":6,"category":288,"difficulty":310,"description":314},"\u002Fterms\u002Fl\u002Floop","A loop makes your code do something over and over until a condition says stop.",{"title":296,"path":316,"acronym":6,"category":288,"difficulty":290,"description":317},"\u002Fterms\u002Fs\u002Fstack-overflow","A stack overflow happens when a function keeps calling itself forever, like a mirror facing a mirror.",{"title":298,"path":319,"acronym":6,"category":288,"difficulty":290,"description":320},"\u002Fterms\u002Ft\u002Ftree","A tree is a data structure shaped like an upside-down tree — one root at the top, branches going down, and leaves at the very bottom.",1776518306708]