Day17 删除链表的节点 + 包含min函数的栈 +从上到下打印二叉树 II

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;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原...
    周英杰Anita阅读 994评论 0 0
  • 链表的特性:如下代码: 剑指offer 06 从尾到头打印链表[https://leetcode-cn.com/p...
    驰同学阅读 1,274评论 0 0
  • 当前Leetcode的链表标签题目一共53道题,除了会员题目,题解基本都在这了,还可能陆续更新一题多解~ 简单 (...
    李白开水阅读 3,073评论 0 2
  • 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 思路: 单链表遍...
    历十九喵喵喵阅读 1,124评论 0 0
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 127,120评论 2 7