算法
模板:
// 二分
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;
}

浙公网安备 33010602011771号