算法

模板:

 

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

  

posted @ 2019-07-15 18:57  unicoe  阅读(219)  评论(0编辑  收藏  举报