File tree Expand file tree Collapse file tree 1 file changed +61
-0
lines changed Expand file tree Collapse file tree 1 file changed +61
-0
lines changed Original file line number Diff line number Diff line change @@ -595,6 +595,43 @@ var isValidBST = function (root) {
595595};
596596```
597597
598+ > 迭代法:
599+
600+ ``` JavaScript
601+ /**
602+ * Definition for a binary tree node.
603+ * function TreeNode(val, left, right) {
604+ * this.val = (val===undefined ? 0 : val)
605+ * this.left = (left===undefined ? null : left)
606+ * this.right = (right===undefined ? null : right)
607+ * }
608+ */
609+ /**
610+ * @param {TreeNode} root
611+ * @return {boolean}
612+ */
613+ let pre = null ;
614+ var isValidBST = function (root ) {
615+ const queue = [];
616+ let cur = root;
617+ let pre = null ;
618+ while (cur !== null || queue .length !== 0 ) {
619+ if (cur !== null ) {
620+ queue .push (cur);
621+ cur = cur .left ;
622+ } else {
623+ cur = queue .pop ();
624+ if (pre !== null && cur .val <= pre .val ) {
625+ return false ;
626+ }
627+ pre = cur;
628+ cur = cur .right ;
629+ }
630+ }
631+ return true ;
632+ };
633+ ```
634+
598635### TypeScript
599636
600637> 辅助数组解决:
@@ -637,6 +674,30 @@ function isValidBST(root: TreeNode | null): boolean {
637674};
638675```
639676
677+ > 迭代法:
678+
679+ ``` TypeScript
680+ function isValidBST(root : TreeNode | null ): boolean {
681+ const queue: TreeNode [] = [];
682+ let cur: TreeNode | null = root ;
683+ let pre: TreeNode | null = null ;
684+ while (cur !== null || queue .length !== 0 ) {
685+ if (cur !== null ) {
686+ queue .push (cur );
687+ cur = cur .left ;
688+ } else {
689+ cur = queue .pop ()! ;
690+ if (pre !== null && cur ! .val <= pre .val ) {
691+ return false ;
692+ }
693+ pre = cur ;
694+ cur = cur ! .right ;
695+ }
696+ }
697+ return true ;
698+ }
699+ ```
700+
640701### Scala
641702
642703辅助数组解决:
You can’t perform that action at this time.
0 commit comments