美文网首页
Day17 删除链表的节点 + 包含min函数的栈 +从上到下

Day17 删除链表的节点 + 包含min函数的栈 +从上到下

作者: 吃掉夏天的怪物 | 来源:发表于2021-06-29 11:51 被阅读0次

Day17 的题都非常简单,只需要简略看一遍就好。注意一些细节问题。

TODO:

  1. 掌握双端队列的用法

剑指 Offer 18. 删除链表的节点(简单)

class Solution {
public:
   ListNode* deleteNode(ListNode* head, int val) {
       ListNode* dummy = new ListNode(0);
       dummy->next = head;
       ListNode* prev = dummy, *ne=head;
       while(ne != nullptr){
           if(ne->val == val){
               prev->next = ne->next;
           }
           prev = ne;
           ne = ne->next;    
       }
       return dummy->next;
   }
};

写的思路和题解差不多

剑指 Offer 30. 包含min函数的栈(简单)

如果能用双端队列就很简单。哦不对,用栈也对啊 ! 下面代码将deque<int> deq;改为stack<int> minStk也可以。

class MinStack {
public:
    /** initialize your data structure here. */
    deque<int> deq;
    stack<int> stk;
    MinStack() {
      
    }
    
    void push(int x) {
        if(deq.empty() || deq.back() >= x){
            deq.push_back(x);
        }
        stk.push(x);
    }
    
    void pop() {
        int wait_delete = stk.top();
        stk.pop();
        if(deq.back() == wait_delete){
            deq.pop_back();
        }        
    }
    
    int top() {
        return stk.top();
    }
    
    int min() {
        return deq.back();
    }
};

剑指 Offer 32 - II. 从上到下打印二叉树 II(简单)

似乎就是一个简单的层序遍历,没有什么难的。

class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        if(root == nullptr) return {};
        TreeNode* ptr = root;
        queue<TreeNode*> quenode;
        quenode.push(root);
        vector<vector<int>> res;
        while(!quenode.empty()){
            int cnt = quenode.size();
            vector<int> levelRes;
            for(int i = 0; i < cnt; i++ ){
                TreeNode* tempNode = quenode.front();
                quenode.pop();
                levelRes.push_back(tempNode->val);
                if(tempNode->left) quenode.push(tempNode->left);
                 if(tempNode->right) quenode.push(tempNode->right);
            }
            res.push_back(levelRes);
        }
        return res;
    }
};

相关文章

  • Day17 删除链表的节点 + 包含min函数的栈 +从上到下

    Day17 的题都非常简单,只需要简略看一遍就好。注意一些细节问题。 TODO: 掌握双端队列[https://w...

  • 1.单链表常用操作

    1.删除单链表中的指定节点 2.删除单链表中指定值的节点 (1). 利用栈删除单链表指定值的节点 (2). 用普通...

  • 【栈】包含min函数的栈

  • 算法相关笔记,持续更新中...

    单链表 1.删除单链表中的指定节点: 2.单链表中删除指定数值的节点方法一:利用栈 3.单链表中删除指定数值的节点...

  • 包含min函数的栈

    定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

  • 包含 min 函数的栈

    题目要求:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数。在该栈中,调用 min、pu...

  • 包含Min函数的栈

    时间 2018/10/14?环境:牛客的编译环境?语言:JavaScript☕️难点:这道题的难点在于不能直接用一...

  • 包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 ...

  • 包含min函数的栈

    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 首先我们可...

  • 包含min函数的栈

    题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

网友评论

      本文标题:Day17 删除链表的节点 + 包含min函数的栈 +从上到下

      本文链接:https://www.haomeiwen.com/subject/esipyltx.html