当前位置: 首页 > news >正文

wcf网站开发南京网站推广哪家便宜

wcf网站开发,南京网站推广哪家便宜,开源展示型网站,电子商务网站建设价格【每日刷题】Day130 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 144. 二叉树的前序遍历 - 力扣(LeetCode) 2. 94. 二叉树的中序遍历 - 力扣…

【每日刷题】Day130

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 144. 二叉树的前序遍历 - 力扣(LeetCode)

2. 94. 二叉树的中序遍历 - 力扣(LeetCode)

3. 145. 二叉树的后序遍历 - 力扣(LeetCode)

1. 144. 二叉树的前序遍历 - 力扣(LeetCode)

//思路:非递归。

//递归进行遍历二叉树非常简单,但是非递归就要麻烦很多了。

class Solution {

public:

    vector<int> preorderTraversal(TreeNode* root)

    {

        vector<int> ans;

        stack<TreeNode*> st;//存放节点的栈

        TreeNode* cur = root;

        while(cur||!st.empty())

        {

            while(cur)//一路往左遍历到空

            {

                ans.push_back(cur->val);

                st.push(cur);

                cur = cur->left;

            }

            TreeNode* tmp = st.top();//获取栈顶节点,也就是返回上一个节点

            st.pop();

            cur = tmp->right;//去右子树继续重复上述过程

        }

        return ans;

    }

};

2. 94. 二叉树的中序遍历 - 力扣(LeetCode)

//思路:非递归。

//基本思路与 "前序遍历" 的非递归基本一致。唯一的区别在于访问根节点值的时机。

// "前序遍历" 中 cur 在遍历的同时就记录了根节点的值。而中序遍历我们需要在 cur 往左遍历到空后,记录根节点的值。 

class Solution {

public:

    vector<int> inorderTraversal(TreeNode* root)

    {

        vector<int> ans;

        stack<TreeNode*> st;

        TreeNode* cur = root;

        while(cur||!st.empty())

        {

            while(cur)//往左遍历到空,并将节点放入栈中

            {

                st.push(cur);

                cur = cur->left;

            }

            ans.push_back(st.top()->val);//记录根节点值

            TreeNode* tmp = st.top();

            st.pop();

            cur = tmp->right;

        }

        return ans;

    }

};

3. 145. 二叉树的后序遍历 - 力扣(LeetCode)

//思路:非递归。

//思路大体上还是相同的,但是细节的处理多了很多。

//首先,还是让 cur 往左遍历到空。随后 tmp 获取栈顶元素,此时分为三种情况:

// 如果 tmp->right 为空,说明此时 tmp 为叶子节点,将值放入 ans 数组中

// 如果 tmp->right 不为空,说明还有右子树,cur 去到 tmp->right

// 这种情况最麻烦:tmp->right 不为空,但是 tmp->right 的节点的值我们已经存储过了,从 tmp->right 回到根节点,此时我们也是需要记录 tmp->val 的。

//但是根据我们①、②点的逻辑是没法做到的,并且会陷入死循环,因为会一直走 cur = tmp->right 的逻辑

//因此这里我们需要用一个变量 prev 来记录存储过的 tmp->right 节点

class Solution {

public:

    vector<int> postorderTraversal(TreeNode* root)

    {

        vector<int> ans;

        stack<TreeNode*> st;

        TreeNode* cur = root;

        TreeNode* prev = nullptr;

        while(cur||!st.empty())

        {

            while(cur)

            {

                st.push(cur);

                cur = cur->left;

            }

            TreeNode* tmp = st.top();

//前面思路相同

            if(!tmp->right||tmp->right==prev)//如果tmp->right==prev,说明 tmp->right 已经记录过(也可以理解为从tmp->right 回来了),此时 tmp->val也要记录,因为左右子树都遍历完了

            {

                ans.push_back(tmp->val);

                st.pop();

                prev = tmp;//使用 prev 记录存储过的 tmp->right

            }

            else cur = tmp->right;

        }

        return ans;

    }

};

http://www.yayakq.cn/news/529571/

相关文章:

  • 做国际网站需要多少钱做视频赚钱的好网站
  • 百度推广要企业自己做网站吗网站权重高+做别的关键词
  • 网站建设师薪资外贸网站建设需求
  • 台州建设网站怎么做企业网站推广赚钱
  • 网站界面设计实验报告全包家装原创装修网站
  • 中山网站建设文化机构网站怎么挂广告
  • 做网站专题的效果苏州网站建设营销q479185700刷屏
  • 网站英文联系我们微信公众平台和微网站的区别
  • 网站做多少层级咨询微平台
  • 韩国化妆品网站模板做网站的公司怎么推广
  • 网站建设中怎么编辑图片群辉做网站服务器python
  • 有搜索引擎作弊的网站海南省住房和城乡建设局网站首页
  • 安徽省交通建设工程质量监督局网站wordpress 在线浏览
  • 免费教育网站建设3030wa网站开发学校
  • 网站建设 seojsc上海黄金网站设计
  • mvc4做网站五做设计需要知道的几个网站吗
  • 企业做网站的意义免费建站排名
  • 网站的设计与制作专业网站设计力荐亿企邦
  • 二手电商怎么做青岛信息优化排名推广
  • 五华网站开发怎么建设公司网站
  • 网站域名怎么设置小网站开发
  • 郑州哪里教做网站原创文章代写平台
  • 东莞市做网站自己开店
  • 乐东黎族自治县住房建设局网站产品宣传片制作公司
  • 网页设计与网站建设选择题江苏住房和城乡建设厅网站
  • 怎么查网站建设是哪家公司网站建设面试自我介绍
  • 收费网站解决方案做网站费用记入什么会计科目
  • 学做家常菜的网站 知乎html网站开发实用技术
  • 网站建设参考文献2017个人设计网站论文摘要
  • 网站改版影响排名吗网站备案更名