給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。
假設乙個二叉搜尋樹具有如下特徵:
節點的左子樹只包含小於當前節點的數。
節點的右子樹只包含大於當前節點的數。
所有左子樹和右子樹自身必須也是二叉搜尋樹。
我寫的,,有些麻煩
/**
* definition for a binary tree node.
* struct treenode
* treenode(int x) : val(x), left(nullptr), right(nullptr) {}
* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}
* };
*//*
用棧存中序遍歷形成的公升序,
然後遍歷棧,發現不是公升序就返回false
*/class
solution
return
true;}
void
middle
(treenode* root)
};
別人寫的
/**
* definition for a binary tree node.
* struct treenode
* treenode(int x) : val(x), left(nullptr), right(nullptr) {}
* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}
* };
*//*
中序遍歷形成公升序,如果不成為公升序就返回false
*/class
solution
}return
false;}
};
再簡潔一些
/**
* definition for a binary tree node.
* struct treenode
* treenode(int x) : val(x), left(nullptr), right(nullptr) {}
* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}
* };
*//*
中序遍歷形成公升序,如果不成為公升序就返回false
*/class
solution
};
leetcode 98 驗證二叉搜尋樹
給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 1 3 輸出 true 示例 2 輸入 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 關鍵資訊 1二叉搜尋樹的中序遍歷是遞...
leetcode 98 驗證二叉搜尋樹
給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 解題思路 中序遍歷遞增,每次只...
leetcode 98 驗證二叉搜尋樹
給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 如果對二叉搜尋樹不夠了解,可能...