zoukankan      html  css  js  c++  java
  • leetcode 199. Binary Tree Right Side View 、leetcode 116. Populating Next Right Pointers in Each Node 、117. Populating Next Right Pointers in Each Node II

    leetcode 199. Binary Tree Right Side View

    这个题实际上就是把每一行最右侧的树打印出来,所以实际上还是一个层次遍历。

    依旧利用之前层次遍历的代码,每次大的循环存储的是一行的节点,最后一个节点就是想要的那个节点

    class Solution {
    public:
        vector<int> rightSideView(TreeNode* root) {
            vector<int> result;
            if(root == NULL)
                return result;
            queue<TreeNode*> q;
            q.push(root);
            while(!q.empty()){
                result.push_back(q.back()->val);
                for(int i = q.size();i > 0;i--){
                    TreeNode* node = q.front();
                    if(node->left)
                        q.push(node->left);
                    if(node->right)
                        q.push(node->right);
                    q.pop();
                }          
            }
            return result;
        }
    };

    leetcode 116. Populating Next Right Pointers in Each Node

    这个题和199题类似,也是层序遍历,且最后一个的node的next为NULL;

    class Solution {
    public:
        Node* connect(Node* root) {
            if(root == NULL)
                return NULL;
            queue<Node*> q;
            q.push(root);
            while(!q.empty()){    
                for(int i = q.size();i > 0;i--){
                    Node* node = q.front();
                    q.pop();
                    if(i != 1)
                        node->next = q.front();
                    if(node->left)
                        q.push(node->left);
                    if(node->right)
                        q.push(node->right);
                }         
            }
            return root;
        }
    };

    117. Populating Next Right Pointers in Each Node II

    这个题与116不同在于,树不再是完全二叉树。对于递归的方法不同,对于非递归,同一个代码完全可以解决这两个问题

  • 相关阅读:
    今天写一篇随想,也当是回顾过去,展望未来吧。
    推荐 Word、EXCEL必备工具箱
    elasticsearch Routing 路由详解
    Python学习之字典
    ES 分片和副本数 调整及数据写入、重建索引调优
    fastJson JSON.parseObject()丢失字符串原本顺序
    Python 列表(详)
    pycharm常用快捷键
    Python学习笔记二(列表)
    python学习笔记二
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/10676750.html
Copyright © 2011-2022 走看看