Leetcode 203/226/228

来源:互联网 发布:电脑如何设置网络共享 编辑:程序博客网 时间:2024/05/16 17:03

203.Remove Linked List Elements

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* removeElements(ListNode* head, int val) {        if (head == NULL)          {              return NULL;          }          ListNode *cur = head;          while (cur && cur->val == val)          {              ListNode *temp = cur;              cur = cur->next;              delete temp;          }          ListNode *res = cur;//完成对头部特殊情况的处理         while (cur)          {              while (cur->next && cur->next->val == val)              {                  ListNode *temp = cur->next;                  cur->next = cur->next->next;                  delete temp;             }              cur = cur->next;          }          return res;      }  };

226.Invert Binary Tree

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode* invertTree(TreeNode* root) {        if(root==NULL) return NULL;          TreeNode *temp  = root->left;          root->left = root->right;          root->right = temp;          invertTree(root->left);//深入          invertTree(root->right);          return root;          }};

228.Summary Ranges

class Solution {public:    vector<string> summaryRanges(vector<int>& nums) {        vector<string> res;        int lo = 0;//左侧端点        for(int i = 0; i < nums.size(); i++){            if(i == nums.size()-1 || nums[i] + 1 != nums[i+1]){//到头或者不满足连续条件                string tmp = to_string(nums[lo]);                if(i != lo) tmp += "->" + to_string(nums[i]);                res.push_back(tmp);//push到输出里                lo = i + 1;//重置左侧端点            }        }        return res;    }};
0 0