@@ -86418,7 +86418,7 @@ <h2 id="solutions">Solutions</h2>
86418
86418
<!-- solution:start -->
86419
86419
86420
86420
<h3 id="solution-1">Solution 1</h3>
86421
- <div class="tabbed-set tabbed-alternate" data-tabs="1:1 "><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">C++</label></div>
86421
+ <div class="tabbed-set tabbed-alternate" data-tabs="1:2 "><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" />< div class="tabbed-labels"><label for="__tabbed_1_1">Java</label><label for="__tabbed_1_2 ">C++</label></div>
86422
86422
<div class="tabbed-content">
86423
86423
<div class="tabbed-block">
86424
86424
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -86466,6 +86466,112 @@ <h3 id="solution-1">Solution 1</h3>
86466
86466
<span class="normal">43</span>
86467
86467
<span class="normal">44</span>
86468
86468
<span class="normal">45</span>
86469
+ <span class="normal">46</span>
86470
+ <span class="normal">47</span>
86471
+ <span class="normal">48</span>
86472
+ <span class="normal">49</span>
86473
+ <span class="normal">50</span>
86474
+ <span class="normal">51</span>
86475
+ <span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
86476
+ <span class="cm"> * Definition for a binary tree node.</span>
86477
+ <span class="cm"> * public class TreeNode {</span>
86478
+ <span class="cm"> * int val;</span>
86479
+ <span class="cm"> * TreeNode left;</span>
86480
+ <span class="cm"> * TreeNode right;</span>
86481
+ <span class="cm"> * TreeNode() {}</span>
86482
+ <span class="cm"> * TreeNode(int val) { this.val = val; }</span>
86483
+ <span class="cm"> * TreeNode(int val, TreeNode left, TreeNode right) {</span>
86484
+ <span class="cm"> * this.val = val;</span>
86485
+ <span class="cm"> * this.left = left;</span>
86486
+ <span class="cm"> * this.right = right;</span>
86487
+ <span class="cm"> * }</span>
86488
+ <span class="cm"> * }</span>
86489
+ <span class="cm"> */</span>
86490
+ <span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
86491
+ <span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">TreeNode</span><span class="w"> </span><span class="nf">recoverFromPreorder</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">traversal</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86492
+ <span class="w"> </span><span class="n">Stack</span><span class="o"><</span><span class="n">TreeNode</span><span class="o">></span><span class="w"> </span><span class="n">stack</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Stack</span><span class="o"><></span><span class="p">();</span>
86493
+ <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
86494
+
86495
+ <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">traversal</span><span class="p">.</span><span class="na">length</span><span class="p">())</span><span class="w"> </span><span class="p">{</span>
86496
+ <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">depth</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
86497
+ <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">traversal</span><span class="p">.</span><span class="na">length</span><span class="p">()</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">traversal</span><span class="p">.</span><span class="na">charAt</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="sc">'-'</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86498
+ <span class="w"> </span><span class="n">depth</span><span class="o">++</span><span class="p">;</span>
86499
+ <span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span>
86500
+ <span class="w"> </span><span class="p">}</span>
86501
+
86502
+ <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
86503
+ <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">traversal</span><span class="p">.</span><span class="na">length</span><span class="p">()</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">Character</span><span class="p">.</span><span class="na">isDigit</span><span class="p">(</span><span class="n">traversal</span><span class="p">.</span><span class="na">charAt</span><span class="p">(</span><span class="n">i</span><span class="p">)))</span><span class="w"> </span><span class="p">{</span>
86504
+ <span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="p">(</span><span class="n">traversal</span><span class="p">.</span><span class="na">charAt</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="sc">'0'</span><span class="p">);</span>
86505
+ <span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span>
86506
+ <span class="w"> </span><span class="p">}</span>
86507
+
86508
+ <span class="w"> </span><span class="c1">// Create the new node</span>
86509
+ <span class="w"> </span><span class="n">TreeNode</span><span class="w"> </span><span class="n">newNode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">TreeNode</span><span class="p">(</span><span class="n">num</span><span class="p">);</span>
86510
+
86511
+ <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">stack</span><span class="p">.</span><span class="na">size</span><span class="p">()</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">depth</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86512
+ <span class="w"> </span><span class="n">stack</span><span class="p">.</span><span class="na">pop</span><span class="p">();</span>
86513
+ <span class="w"> </span><span class="p">}</span>
86514
+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">stack</span><span class="p">.</span><span class="na">isEmpty</span><span class="p">())</span><span class="w"> </span><span class="p">{</span>
86515
+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">stack</span><span class="p">.</span><span class="na">peek</span><span class="p">().</span><span class="na">left</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86516
+ <span class="w"> </span><span class="n">stack</span><span class="p">.</span><span class="na">peek</span><span class="p">().</span><span class="na">left</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">newNode</span><span class="p">;</span>
86517
+ <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
86518
+ <span class="w"> </span><span class="n">stack</span><span class="p">.</span><span class="na">peek</span><span class="p">().</span><span class="na">right</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">newNode</span><span class="p">;</span>
86519
+ <span class="w"> </span><span class="p">}</span>
86520
+ <span class="w"> </span><span class="p">}</span>
86521
+
86522
+ <span class="w"> </span><span class="n">stack</span><span class="p">.</span><span class="na">push</span><span class="p">(</span><span class="n">newNode</span><span class="p">);</span>
86523
+ <span class="w"> </span><span class="p">}</span>
86524
+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">stack</span><span class="p">.</span><span class="na">isEmpty</span><span class="p">()</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="kc">null</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">stack</span><span class="p">.</span><span class="na">get</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
86525
+ <span class="w"> </span><span class="p">}</span>
86526
+ <span class="p">}</span>
86527
+ </code></pre></div></td></tr></table></div>
86528
+ </div>
86529
+ <div class="tabbed-block">
86530
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86531
+ <span class="normal"> 2</span>
86532
+ <span class="normal"> 3</span>
86533
+ <span class="normal"> 4</span>
86534
+ <span class="normal"> 5</span>
86535
+ <span class="normal"> 6</span>
86536
+ <span class="normal"> 7</span>
86537
+ <span class="normal"> 8</span>
86538
+ <span class="normal"> 9</span>
86539
+ <span class="normal">10</span>
86540
+ <span class="normal">11</span>
86541
+ <span class="normal">12</span>
86542
+ <span class="normal">13</span>
86543
+ <span class="normal">14</span>
86544
+ <span class="normal">15</span>
86545
+ <span class="normal">16</span>
86546
+ <span class="normal">17</span>
86547
+ <span class="normal">18</span>
86548
+ <span class="normal">19</span>
86549
+ <span class="normal">20</span>
86550
+ <span class="normal">21</span>
86551
+ <span class="normal">22</span>
86552
+ <span class="normal">23</span>
86553
+ <span class="normal">24</span>
86554
+ <span class="normal">25</span>
86555
+ <span class="normal">26</span>
86556
+ <span class="normal">27</span>
86557
+ <span class="normal">28</span>
86558
+ <span class="normal">29</span>
86559
+ <span class="normal">30</span>
86560
+ <span class="normal">31</span>
86561
+ <span class="normal">32</span>
86562
+ <span class="normal">33</span>
86563
+ <span class="normal">34</span>
86564
+ <span class="normal">35</span>
86565
+ <span class="normal">36</span>
86566
+ <span class="normal">37</span>
86567
+ <span class="normal">38</span>
86568
+ <span class="normal">39</span>
86569
+ <span class="normal">40</span>
86570
+ <span class="normal">41</span>
86571
+ <span class="normal">42</span>
86572
+ <span class="normal">43</span>
86573
+ <span class="normal">44</span>
86574
+ <span class="normal">45</span>
86469
86575
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
86470
86576
<span class="cm"> * Definition for a binary tree node.</span>
86471
86577
<span class="cm"> * struct TreeNode {</span>
@@ -86547,6 +86653,11 @@ <h3 id="solution-1">Solution 1</h3>
86547
86653
86548
86654
<nav>
86549
86655
86656
+ <a href="https://github.com/PATILYASH007" class="md-author" title="@PATILYASH007">
86657
+
86658
+ <img src="https://avatars.githubusercontent.com/u/159998226?v=4&size=72" alt="PATILYASH007">
86659
+ </a>
86660
+
86550
86661
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
86551
86662
86552
86663
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments