博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
借助queue的层次遍历---c++
阅读量:5151 次
发布时间:2019-06-13

本文共 1093 字,大约阅读时间需要 3 分钟。

今天的收获:

1.c++中存在queue模板

 queue<template type> vec;

   vec.push();

   vec.pop();

   queue 没有清空操作,clear()等函数,因此可以定义一个新的空队列 queue< ** > newqu,然后 swap(vec,newqu ),这样就清空vec 了。

2.借助queue的层次遍历

思想:在遍历该节点时,将它的孩子几点入队。

/** * 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:    vector
> LevelTravel(TreeNode* root){ vector
> result; queue
vec,tmp; vector
temp; if(root == NULL) return result; vec.push(root); while(!vec.empty()){ while(!vec.empty()){ TreeNode * cur = vec.front(); vec.pop(); if( cur->left!= NULL) { tmp.push(cur->left); } if( cur->right!= NULL) { tmp.push(cur->right); } temp.push_back(cur->val); } swap(vec,tmp); result.push_back(temp); temp.clear(); } for(int i =1;i
> zigzagLevelOrder(TreeNode* root) { vector
> result; result = LevelTravel(root); return result; }};

  

 

转载于:https://www.cnblogs.com/mokayy/p/5582341.html

你可能感兴趣的文章