数据结构与算法
destination00
这个作者很懒,什么都没留下…
展开
-
二叉树的最小深度
给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最小深度 2. 代码如下: /** * Definition for a binary tree node. * struct TreeNode { * int val; ...原创 2019-06-10 17:58:27 · 72 阅读 · 0 评论 -
从尾到头打印一个单链表
输入一个单链表的头结点,从尾到头打印整个链表每个节点的值 两种思路: 1.不破坏单链表的结构,用栈或者递归的方式实现反转打印; 2.反转整个链表,再打印每个节点的值。 (1)利用栈的数据结构来实现 void PrintList_reverse(ListNode* head) { std::stack<ListNode*> nodes; ListNode* p=head; whil...原创 2019-06-11 16:33:54 · 398 阅读 · 0 评论 -
二叉树的三种遍历方式(递归和循环)
如图所示二叉树: 对其分别进行前、中、后续遍历; 先序遍历: (1)递归 void preorder(TreeNode* root) { if(root==NULL) return; cout<<root->data<<" "; preorder(root->left); preorder(root->right); } (2)非递归(循环...原创 2019-06-11 18:32:09 · 452 阅读 · 0 评论