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