2828struct ListNode {
2929 int val = 0 ;
3030 ListNode *next = nullptr ;
31-
3231 explicit ListNode (int val) : val(val) {}
3332};
3433
@@ -48,17 +47,17 @@ template <typename Fn> void foreach (ListNode *n, Fn && fn) {
4847}
4948
5049template <typename T = int , typename TIterable = std::initializer_list<T>>
51- ListNode *make_nodes (TIterable &&iter ) {
52- auto it = std::begin (iter );
53- auto end = std::end (iter );
54- if (it == end) {
50+ ListNode *make_nodes (TIterable &&iterable ) {
51+ auto end = std::end (iterable );
52+ auto iter = std::begin (iterable );
53+ if (iter == end) {
5554 return nullptr ;
5655 }
57- auto *first = new ListNode (*it ++);
58- for (ListNode *cur = first; it != end; ++it, cur = cur ->next ) {
59- cur ->next = new ListNode (static_cast <int >(*it ));
56+ auto *head = new ListNode (*iter ++);
57+ for (ListNode *p = head; iter != end; ++iter, p = p ->next ) {
58+ p ->next = new ListNode (static_cast <int >(*iter ));
6059 }
61- return first ;
60+ return head ;
6261}
6362
6463inline void del_nodes (ListNode *n) {
@@ -85,28 +84,28 @@ inline TreeNode *make_tree(const int v, TreeNode *ln = nullptr,
8584 return new TreeNode{v, ln, rn};
8685}
8786
88- inline void delete_tree (TreeNode *n) {
87+ inline void del_tree (TreeNode *n) {
8988 if (n == nullptr ) {
9089 return ;
9190 }
92- delete_tree (n->left );
93- delete_tree (n->right );
91+ del_tree (n->left );
92+ del_tree (n->right );
9493 delete n;
9594}
9695
97- template <typename TIterable> void print (TIterable &&iter ) {
98- auto it = std::begin (iter );
99- auto end = std::end (iter );
96+ template <typename TIterable> void print (TIterable &&iterable ) {
97+ auto end = std::end (iterable );
98+ auto iter = std::begin (iterable );
10099 std::cout << " [" ;
101- if (it != end) {
102- std::cout << *it ;
103- ++it ;
100+ if (iter != end) {
101+ std::cout << *iter ;
102+ ++iter ;
104103 }
105- while (it != end) {
106- std::cout << " , " << *it ;
107- ++it ;
104+ while (iter != end) {
105+ std::cout << " , " << *iter ;
106+ ++iter ;
108107 }
109- std::cout << " ]" << std::endl ;
108+ std::cout << " ]" ;
110109}
111110
112111inline void print (std::ostream &out, const int it) {
@@ -119,19 +118,7 @@ inline void print(std::ostream &out, const bool it) {
119118
120119template <typename T>
121120std::ostream &operator <<(std::ostream &out, const std::vector<T> &vec) {
122- auto it = vec.cbegin ();
123- auto end = vec.cend ();
124- out << " [" ;
125- if (it != end) {
126- print (out, *it);
127- ++it;
128- while (it != end) {
129- out << " ," ;
130- print (out, *it);
131- ++it;
132- }
133- }
134- out << " ]" << std::endl;
121+ print (vec);
135122 return out;
136123}
137124
0 commit comments