模板:
// 二分
class Solution {
public:
/**
* @param nums: An integer array sorted in ascending order
* @param target: An integer
* @return: An integer
*/
int findPosition(vector<int> &nums, int target) {
// write your code here
if(nums.size() == 0) return -1;
int start = 0;
int end = nums.size()-1;
int mid;
while(start+1 < end)
{
mid = start + (end - start)/2;
if(nums[mid] == target)
return mid;
else if(nums[mid] > target)
end = mid;
else if(nums[mid] < target)
start = mid;
}
if(nums[start] == target)
return start;
if(nums[end] == target)
return end;
return -1;
}
};
// 二叉树前序遍历
public List<Integer> preorderTraversal(TreeNode root)
{
Stack<TreeNode> stack = new Stack<TreeNode>();
List<Integer> preorder = new ArrayList<Integer>();
if(root == null) return preorder;
stack.push(root);
while(!stack.empty())
{
TreeNode node = stack.pop();
preorder.add(node.val);
if(node.right != null)
stack.push(node.right);
if(node.left != null)
stack.push(node.left);
}
return preorder;
}