<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Recursion &#8211; JSAlgorithm</title>
	<atom:link href="https://jsalgorithm.com/category/recursion/feed/" rel="self" type="application/rss+xml" />
	<link>https://jsalgorithm.com</link>
	<description></description>
	<lastBuildDate>Wed, 20 May 2020 12:41:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.15</generator>
<site xmlns="com-wordpress:feed-additions:1">177240629</site>	<item>
		<title>Happy Number</title>
		<link>https://jsalgorithm.com/2020/05/20/happy-number/</link>
					<comments>https://jsalgorithm.com/2020/05/20/happy-number/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Wed, 20 May 2020 12:41:18 +0000</pubDate>
				<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=122</guid>

					<description><![CDATA[let isHappy = function(n) { let visited = {}; function sumOfSquare(num) { if (visited[num]) return false; visited[num] = true; let sum = 0; while (num &#62; 0) { let d = num % 10; //? num = Math.floor(num / 10); //? sum += d * d; } if (sum === 1) { return true; } [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let isHappy = function(n) {<br>    let visited = {};<br><br>    function sumOfSquare(num) {<br>        if (visited[num]) return false;<br>        visited[num] = true;<br><br>        let sum = 0;<br>        while (num &gt; 0) {<br>            let d = num % 10; //?<br>            num = <strong><em>Math</em></strong>.floor(num / 10); //?<br>            sum += d * d;<br>        }<br><br>        if (sum === 1) {<br>            return true;<br>        }<br>        else {<br>            return sumOfSquare(sum);<br>        }<br>    }<br>    <br>    return sumOfSquare(n);<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/20/happy-number/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">122</post-id>	</item>
		<item>
		<title>Unique Paths (Recursion)</title>
		<link>https://jsalgorithm.com/2020/05/18/unique-paths-recursion/</link>
					<comments>https://jsalgorithm.com/2020/05/18/unique-paths-recursion/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Mon, 18 May 2020 21:46:40 +0000</pubDate>
				<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=102</guid>

					<description><![CDATA[let uniquePaths = function(m, n) { let results = new Set(); function getPath(row, col, path = '') { if (row &#62;= m &#38;&#38; col &#62;= n) { results.add(path); return; } if (row === m) { // go right if at the bottom row getPath(row, col + 1, path + 'R'); } else if (col === [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let uniquePaths = function(m, n) {<br>    let results = new <strong><em>Set</em></strong>();<br>    function getPath(row, col, path = '') {<br>        if (row &gt;= m &amp;&amp; col &gt;= n) {<br>            results.add(path);<br>            return;<br>        }<br><br>        if (row === m) {<br>            // go right if at the bottom row<br>            getPath(row, col + 1, path + 'R');<br>        }<br>        else if (col === n) {<br>            // go down if at the end column<br>            getPath(row + 1, col, path + 'D');<br>        }<br>        else {<br>            // go down and go right<br>            getPath(row, col + 1, path + 'R');<br>            getPath(row + 1, col, path + 'D');<br>        }<br>    }<br><br>    getPath(1, 1, 'S');<br>    return results.size;<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/18/unique-paths-recursion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">102</post-id>	</item>
		<item>
		<title>Minimum Path Sum (Recursion)</title>
		<link>https://jsalgorithm.com/2020/05/18/minimum-path-sum-recursion/</link>
					<comments>https://jsalgorithm.com/2020/05/18/minimum-path-sum-recursion/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Mon, 18 May 2020 20:59:02 +0000</pubDate>
				<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=98</guid>

					<description><![CDATA[let minPathSum = function(grid) { if(!grid &#124;&#124; !grid.length) return 0; let maxRow = grid.length, maxCol = grid[0].length; function sum(row, col, total, path = '') { const val = grid[row][col] + total; //? if (row === maxRow - 1 &#38;&#38; col === maxCol - 1) { return val; } //? if (row === maxRow - 1) [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let minPathSum = function(grid) {<br><br>    if(!grid || !grid.length) return 0;<br><br>    let maxRow = grid.length, maxCol = grid[0].length;<br>    function sum(row, col, total, path = '') {<br>        const val = grid[row][col] + total; //?<br>        if (row === maxRow - 1 &amp;&amp; col === maxCol - 1) {<br>            return val;<br>        } //?<br><br>        if (row === maxRow - 1) {<br>            return sum(row, col + 1, val);<br>        }<br>        else if (col === maxCol - 1) {<br>            return sum(row + 1, col, val);<br>        } else {<br>            const down = sum(row + 1, col, val);<br>            const right = sum(row, col + 1, val);<br>            return <strong><em>Math</em></strong>.min(down, right);<br>        }<br>    }<br><br>    return sum(0, 0, 0);<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/18/minimum-path-sum-recursion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">98</post-id>	</item>
		<item>
		<title>Path Sum II</title>
		<link>https://jsalgorithm.com/2020/05/17/path-sum-ii/</link>
					<comments>https://jsalgorithm.com/2020/05/17/path-sum-ii/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Sun, 17 May 2020 02:54:10 +0000</pubDate>
				<category><![CDATA[Binary Tree]]></category>
		<category><![CDATA[Depth First Search]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[binary-tree]]></category>
		<category><![CDATA[depth-first-search]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[pathsum]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=96</guid>

					<description><![CDATA[let pathSum = function(root, sum, results = [], result = []) { if (!root) return results; if (sum - root.val === 0 &#38;&#38; !root.left &#38;&#38; !root.right) { results.push([...result, root.val]); } pathSum(root.left, sum - root.val, results, [...result, root.val]); pathSum(root.right, sum - root.val, results, [...result, root.val]); return results;};]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let pathSum = function(root, sum, results = [], result = []) {<br><br>    if (!root) return results;<br>    if (sum - root.val === 0 &amp;&amp; !root.left &amp;&amp; !root.right) {<br>        results.push([...result, root.val]);<br>    }<br><br>    pathSum(root.left, sum - root.val, results, [...result, root.val]);<br>    pathSum(root.right, sum - root.val, results, [...result, root.val]);<br>    return results;<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/17/path-sum-ii/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">96</post-id>	</item>
		<item>
		<title>Path Sum I</title>
		<link>https://jsalgorithm.com/2020/05/17/path-sum-i/</link>
					<comments>https://jsalgorithm.com/2020/05/17/path-sum-i/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Sun, 17 May 2020 02:38:24 +0000</pubDate>
				<category><![CDATA[Binary Tree]]></category>
		<category><![CDATA[Depth First Search]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[binary-tree]]></category>
		<category><![CDATA[depth-first-search]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=91</guid>

					<description><![CDATA[let hasPathSum = function(root, sum) { if (!root) return false; if (sum - root.val === 0 &#38;&#38; !root.left &#38;&#38; !root.right) return true; return hasPathSum(root.left, sum - root.val) &#124;&#124; hasPathSum(root.right, sum - root.val);};]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let hasPathSum = function(root, sum) {<br><br>    if (!root) return false;<br>    if (sum - root.val === 0 &amp;&amp; !root.left &amp;&amp; !root.right) return true;<br><br>    return hasPathSum(root.left, sum - root.val)<br>        || hasPathSum(root.right, sum - root.val);<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/17/path-sum-i/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">91</post-id>	</item>
		<item>
		<title>Minesweeper</title>
		<link>https://jsalgorithm.com/2020/05/17/minesweeper/</link>
					<comments>https://jsalgorithm.com/2020/05/17/minesweeper/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Sun, 17 May 2020 02:21:08 +0000</pubDate>
				<category><![CDATA[Depth First Search]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[depth-first-search]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=88</guid>

					<description><![CDATA[let updateBoard = function(board, click) { let maxRow = board.length, maxCol = board[0].length, MINE = 'M', BLANK = 'B', EMPTY = 'E', GAMEOVER = 'X'; function isMine(row, col) { if (row &#60; 0 &#124;&#124; col &#60; 0 &#124;&#124; row >= maxRow &#124;&#124; col >= maxCol) { return 0; } return board[row][col] === MINE ? 1 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let updateBoard = function(board, click) {

    let maxRow = board.length,
        maxCol = board[0].length,
        MINE = 'M',
        BLANK = 'B',
        EMPTY = 'E',
        GAMEOVER = 'X';

    function isMine(row, col) {
        if (row &lt; 0 || col &lt; 0 || row >= maxRow || col >= maxCol) {
            return 0;
        }
        return board[row][col] === MINE ? 1 : 0;
    }

    function getMineCount(row, col) {
        let nearbyMines = 0;
        nearbyMines += isMine(row - 1, col - 1); // top left
        nearbyMines += isMine(row - 1, col); // top
        nearbyMines += isMine(row - 1, col + 1); // top right
        nearbyMines += isMine(row, col - 1); // left
        nearbyMines += isMine(row, col + 1); // right
        nearbyMines += isMine(row + 1, col - 1); // bottom left
        nearbyMines += isMine(row + 1, col); // bottom
        nearbyMines += isMine(row + 1, col + 1); // bottom right
        return nearbyMines;
    }

    function markAndExplore(row, col) {
        if (row &lt; 0 || col &lt; 0 || row >= maxRow || col >= maxCol) {
            return;
        }
        const data = board[row][col];
        if (data === EMPTY) {

            const mineCount = getMineCount(row, col);
            board[row][col] = mineCount > 0 ? `${mineCount}` : BLANK;

            if (mineCount === 0) {
                markAndExplore(row - 1, col - 1); // top left
                markAndExplore(row - 1, col); // top
                markAndExplore(row - 1, col + 1); // top right
                markAndExplore(row, col - 1); // left
                markAndExplore(row, col + 1); // right
                markAndExplore(row + 1, col - 1); // bottom left
                markAndExplore(row + 1, col); // bottom
                markAndExplore(row + 1, col + 1); // bottom right
            }
        }
    }

    let [x, y] = click;
    if (board[x][y] === MINE) {
        board[x][y] = GAMEOVER;
    }
    else {
        markAndExplore(x, y);
    }

    return board;
};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/17/minesweeper/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">88</post-id>	</item>
		<item>
		<title>Island Perimeter</title>
		<link>https://jsalgorithm.com/2020/05/16/island-perimeter/</link>
					<comments>https://jsalgorithm.com/2020/05/16/island-perimeter/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Sat, 16 May 2020 03:14:03 +0000</pubDate>
				<category><![CDATA[Depth First Search]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[depth-first-search]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=86</guid>

					<description><![CDATA[let islandPerimeter = function(grid) { if (!grid &#124;&#124; !grid.length) return 0; let maxRow = grid.length, maxCol = grid[0].length, LAND = 1, VISITED = 2; function calculatePerimeter(row, col) { if (grid[row][col] === LAND) { grid[row][col] = VISITED; let perimeter = 4; // check above; if (row &#62; 0 &#38;&#38; (grid[row - 1][col] === LAND &#124;&#124; grid[row [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let islandPerimeter = function(grid) {<br><br>    if (!grid || !grid.length) return 0;<br><br>    let maxRow = grid.length,<br>        maxCol = grid[0].length,<br>        LAND = 1, VISITED = 2;<br><br>    function calculatePerimeter(row, col) {<br><br>        if (grid[row][col] === LAND) {<br>            grid[row][col] = VISITED;<br><br>            let perimeter = 4;<br>            // check above;<br>            if (row &gt; 0<br>                &amp;&amp; (grid[row - 1][col] === LAND || grid[row - 1][col] === VISITED)) {<br>                perimeter = perimeter - 1;<br>                perimeter += calculatePerimeter(row - 1, col);<br>            }<br><br>            // check below;<br>            if (row &lt; maxRow - 1<br>                &amp;&amp; (grid[row + 1][col] === LAND || grid[row + 1][col] === VISITED)) {<br>                perimeter = perimeter - 1;<br>                perimeter += calculatePerimeter(row + 1, col);<br>            }<br><br>            // check left;<br>            if (col &gt; 0<br>                &amp;&amp; (grid[row][col - 1] === LAND || grid[row][col - 1] === VISITED)) {<br>                perimeter = perimeter - 1;<br>                perimeter += calculatePerimeter(row, col - 1);<br>            }<br><br>            // check right;<br>            if (col &lt; maxCol - 1<br>                &amp;&amp; (grid[row][col + 1] === LAND || grid[row][col + 1] === VISITED)) {<br>                perimeter = perimeter - 1;<br>                perimeter += calculatePerimeter(row, col + 1);<br>            }<br><br>            return perimeter; //?<br>        }<br><br>        return 0;<br>    }<br><br>    for (let row = 0; row &lt; maxRow; row++) {<br>        for (let col = 0; col &lt; maxCol;col++) {<br>            if (grid[row][col] === LAND) {<br>                return calculatePerimeter(row, col);<br>            }<br>        }<br>    }<br><br>    return 0;<br><br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/16/island-perimeter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">86</post-id>	</item>
		<item>
		<title>Max Area of Island</title>
		<link>https://jsalgorithm.com/2020/05/16/max-area-of-island/</link>
					<comments>https://jsalgorithm.com/2020/05/16/max-area-of-island/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Sat, 16 May 2020 02:52:57 +0000</pubDate>
				<category><![CDATA[Depth First Search]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[depth-first-search]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=84</guid>

					<description><![CDATA[let maxAreaOfIsland = function(grid) { if (!grid &#124;&#124; !grid.length) return 0; let max = 0, maxRow = grid.length, maxCol = grid[0].length, LAND = 1, VISITED = 2; function markAndGetTotal(row, col) { if (row &#60; 0 &#124;&#124; row &#62;= maxRow &#124;&#124; col &#60; 0 &#124;&#124; col &#62;= maxCol) return 0; if (grid[row][col] === LAND) { grid[row][col] [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let maxAreaOfIsland = function(grid) {<br><br>    if (!grid || !grid.length) return 0;<br><br>    let max = 0,<br>        maxRow = grid.length,<br>        maxCol = grid[0].length,<br>        LAND = 1, VISITED = 2;<br><br>    function markAndGetTotal(row, col) {<br>        if (row &lt; 0 || row &gt;= maxRow || col &lt; 0 || col &gt;= maxCol) return 0;<br>        if (grid[row][col] === LAND) {<br>            grid[row][col] = VISITED;<br><br>            let result = 1;<br>            // top<br>            result += markAndGetTotal(row - 1, col);<br>            // bottom<br>            result += markAndGetTotal(row + 1, col);<br>            // left<br>            result += markAndGetTotal(row, col - 1);<br>            /// right<br>            result += markAndGetTotal(row, col + 1);<br>            return result;<br>        }<br>        return 0;<br>    }<br><br>    for (let row = 0; row &lt; maxRow;row++) {<br>        for (let col = 0; col &lt; maxCol;col++) {<br>            if (grid[row][col] === LAND) {<br>                const total = markAndGetTotal(row, col); //?<br>                max = <strong><em>Math</em></strong>.max(total, max);<br>            }<br>        }<br>    }<br><br>    return max;<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/16/max-area-of-island/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">84</post-id>	</item>
		<item>
		<title>Number Of Distinct Islands</title>
		<link>https://jsalgorithm.com/2020/05/16/number-of-distinct-islands/</link>
					<comments>https://jsalgorithm.com/2020/05/16/number-of-distinct-islands/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Sat, 16 May 2020 01:20:03 +0000</pubDate>
				<category><![CDATA[Depth First Search]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[Matrix]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[depth-first-search]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[matrix]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=80</guid>

					<description><![CDATA[if (!grid &#124;&#124; !grid.length) return 0;let numRows = grid.length, numCols = grid[0].length, LAND = 1, VISITED = 2;function markAndVisit(row, col, island = [], level = 0) { if (grid[row][col] === LAND) { grid[row][col] = VISITED; island.push('X' + level); // up if (row &#62; 0 &#38;&#38; grid[row - 1][col] === LAND) { island.push('U' + level); markAndVisit(row [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">if (!grid || !grid.length) return 0;<br><br>let numRows = grid.length,<br>    numCols = grid[0].length,<br>    LAND = 1, VISITED = 2;<br><br>function markAndVisit(row, col, island = [], level = 0) {<br>    if (grid[row][col] === LAND) {<br>        grid[row][col] = VISITED;<br>        island.push('X' + level);<br><br>        // up<br>        if (row &gt; 0 &amp;&amp; grid[row - 1][col] === LAND) {<br>            island.push('U' + level);<br>            markAndVisit(row - 1, col, island, level + 1);<br>        }<br><br>        // down<br>        if (row &lt; numRows - 1 &amp;&amp; grid[row + 1][col] === LAND) {<br>            island.push('D' + level);<br>            markAndVisit(row + 1, col, island, level + 1);<br>        }<br><br>        // left<br>        if (col &gt; 0 &amp;&amp; grid[row][col - 1] === LAND) {<br>            island.push('L' + level);<br>            markAndVisit(row, col - 1, island, level + 1);<br>        }<br><br>        // right<br>        if (col &lt; numCols - 1 &amp;&amp; grid &amp;&amp; grid[row][col + 1] === LAND) {<br>            island.push('R' + level);<br>            markAndVisit(row, col + 1, island, level + 1);<br>        }<br>    }<br><br>    return island;<br>}<br><br>let islands = new <strong><em>Set</em></strong>();<br>for (let row = 0; row &lt; numRows;row++) {<br>    for (let col = 0; col &lt; numCols;col++) {<br>        if (grid[row][col] === LAND) {<br>            let island = markAndVisit(row, col);<br>            // console.log(island);<br>            if (island.length) islands.add(island.join(''));<br>        }<br>    }<br>}<br><br>// console.table(grid);<br>return islands.size;</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/16/number-of-distinct-islands/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">80</post-id>	</item>
		<item>
		<title>Is Subtree</title>
		<link>https://jsalgorithm.com/2020/05/14/is-subtree/</link>
					<comments>https://jsalgorithm.com/2020/05/14/is-subtree/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Thu, 14 May 2020 03:45:03 +0000</pubDate>
				<category><![CDATA[Binary Tree]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[binary-tree]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=72</guid>

					<description><![CDATA[let isSubtree = function(mainTree, subTree) { function isSame(left, right) { if (left === right) return true; if (left === null &#38;&#38; right !== null) return false; if (left !== null &#38;&#38; right === null) return false; if (left.val !== right.val) return false; return isSame(left.left, right.left) &#38;&#38; isSame(left.right, right.right); } if (mainTree === subTree) return true; [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let isSubtree = function(mainTree, subTree) {<br><br>    function isSame(left, right) {<br>        if (left === right) return true;<br>        if (left === null &amp;&amp; right !== null) return false;<br>        if (left !== null &amp;&amp; right === null) return false;<br>        if (left.val !== right.val) return false;<br>        return isSame(left.left, right.left)<br>            &amp;&amp; isSame(left.right, right.right);<br>    }<br><br>    if (mainTree === subTree) return true;<br>    if (!mainTree) return false;<br>    if (isSame(mainTree, subTree)) return true;<br><br>    return isSubtree(mainTree.left, subTree) || isSubtree(mainTree.right, subTree);<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/14/is-subtree/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">72</post-id>	</item>
	</channel>
</rss>
