leetcode-501. 二叉搜尋樹中的眾數
阿新 • • 發佈:2022-01-03
leetcode
題目
解法
主要是考的一個特性: 二叉搜尋樹的中序遍歷結果是遞增的數列
然後就相當於是對一個遞增數列求眾數的邏輯了
class Solution { private $maxCount = 0; private $base = null; private $curCount = 0; private $ret = []; /** * @param TreeNode $root * @return Integer[] */ function findMode($root) { $this->mid($root); return $this->ret; } public function mid(TreeNode $root) { if (empty($root)) { return; } if (!empty($root->left)) { $this->mid($root->left); } // 先判斷當前值的數量 if (!is_null($this->base) && $root->val == $this->base) { $this->curCount++; } else { $this->curCount = 1; } // 當前值數量大於最大數, 覆蓋返回值 if ($this->curCount > $this->maxCount) { $this->ret = [$root->val]; $this->maxCount = $this->curCount; } elseif ($this->curCount == $this->maxCount) { $this->ret[] = $root->val; } $this->base = $root->val; if (!empty($root->right)) { $this->mid($root->right); } } }
參考
本文來自部落格園,作者:吳丹陽-cn,轉載請註明原文連結:https://www.cnblogs.com/wudanyang/p/15758598.html