zoukankan      html  css  js  c++  java
  • Binary Tree Level Order Traversal II <leetcode>

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

    For example:
    Given binary tree {3,9,20,#,#,15,7},
    3
    /
    9 20
    /
    15 7
    return its bottom-up level order traversal as:
    [
    [15,7],
    [9,20],
    [3]
    ]

    思路:本来想到用分支限界,但是代码写的很复杂,没有控制住,后来在网上看到一个方法,很简单,直接遍历,有些代码挺巧妙的,代码如下:

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10  struct node
    11  {
    12      TreeNode *val;
    13      int dep;
    14  };
    15 class Solution {
    16 public:
    17     vector<vector<int>>  result;
    18     vector<int>  temp;
    19     vector<vector<int> > levelOrderBottom(TreeNode *root) {
    20         doit(root,0);
    21         reverse(result.begin(),result.end());
    22         return result;
    23     }
    24     
    25     void doit(TreeNode *root,int level)
    26     {
    27         if(root==NULL)  return;
    28         else
    29         {
    30             if(level==result.size())
    31             {
    32                  vector<int> v;
    33                  result.push_back(v);
    34             }
    35             result[level].push_back(root->val);
    36             doit(root->left,level+1);
    37             doit(root->right,level+1);
    38         }
    39     }
    40 };
  • 相关阅读:
    【python ----集合练习】
    【python ---字典练习】索引 增删改 嵌套
    词频统计
    枚举
    【python--集合】增删改 交集 差集 并集 反交集 子集和超集
    迭代器和迭代对象 生成器 推导式
    tuple 元组
    【python--字典】 字典的拆包
    Python -- 函数
    Python -- 文件的copy以及读写
  • 原文地址:https://www.cnblogs.com/sqxw/p/3954530.html
Copyright © 2011-2022 走看看